プロフィール

髭山髭人(ひげひと)

自分の書いた記事が、一人でも誰かの役に立てば...
活動信条の一つとして「貴方のメモは、誰かのヒント」というのがあります。

このサイトについて

本家HP packetroom.net から切り離した いわゆる技術メモ用のブログで、無料レンタルサーバーにて運用しています。広告表示はその義務なのでご容赦。
XREA さんには長年お世話になっています

Chromium系バイナリ書換~横幅500px制限撤廃から始める快適ソシャゲライフ~

お知らせ + 追記

限定コンテンツの中核部情報と同性質・同一性のある情報が SNS上へ掲載されている事を確認したため
一部の記事や外部コンテンツを修正または非公開の状態としていましたが、
DMで新規問合わせを受けた折、コンテンツ提供・対応を部分的に再開致しました。
( 2023/12/27 ~ 2024/10/05 )

はじめに

  • 趣旨
    Chrome(系)の横幅を500px未満に縮めるには バイナリ弄るしか手立てがないんで、
    それらに関する情報ポータル的な記事を用意しました

※ 自己責任で行ってください

バイナリ書き換えで実現可能な処理

Iron サンプル

横幅制限解除 + URLバーの制限解除やアバターボタンの除去…等々、複数の改造を盛った状態

Chromium サンプル

大体同上
再びアバターボタンやタブ右側のスペース、(なんとなく)最大化ボタンまで執念で解析しました。
そのうち Xfolio 側にアップするかも

Chrome 解析当時の動作デモ (古)

  1. ブラウザ横幅の制限解除(任意値まで緩和)
  2. タブ検索ボタンを消去
  3. http 接続で表示される「保護されていない通信」文言を消去
  4. ロケーションバーの横幅制限撤廃 (拡張機能やメニューボタンが見切れづらくなる)

執筆時 GoogleChrome 99.0.4844.82 (x64)

⚠️ Chromium や Iron で事足りるので、現在 Google Chrome の解析は行っていません

バイナリ書換手順

1. バイナリエディタを入手

ファイルデータを最小単位の精度で書き換えるソフト みたいなものです。
バイナリエディタ あたりでググって自己責任のもと適当なエディタを使ってください。
簡単なUIのものなら、初心者の方でも結構直感的に使えるかも

💡 迷ったら 「Stirling」で良いと思います

2. Chrome.dll を作業できる場所へ引っ張り出す

※ Chromium 等の Portable 版をDLして使っている方は、(システム系フォルダ等に入れていなければ)直接編集が可能です

GoogleChrome対象の方は、インストール済みのChrome本体が置かれた場所をPCから探してください。
自分はおおよそ以下の場所にインストールされていました。

C:\Program Files (x86)\Google\Chrome

そこから更にフォルダを辿って Chrome.dll を探します

C:\Program Files (x86)\Google\Chrome\Application[バージョン値]\Chrome.dll

アクセス権限の観点から必ず、一度デスクトップなどに Chrome.dll をコピーし、そこで編集作業を行ってください。
( インストールフォルダ内での直接的な編集や上書きは基本的に出来ない為 )
また、念のため Chrome.dll.original といった風に、名前(拡張子)を変えたオリジナル状態のファイルを 最低1つは必ずバックアップしておきましょう。

3. バイナリエディタで Chrome.dll を編集

  • 値の検索について
    バイナリエディタには十中八九「データ(バイナリ/HEX)検索」と呼ばれる機能が付いています。
    テキストエディタで言うところの「文字検索」機能と同じです。
    ただ、扱うのがバイナリという特質上、 1F A5 09 82 AB 3C 2F FD.. のような16進数の羅列でファイル内を検索します

  • 検索 & 書換値の変動について
    バージョンが変わっても使いまわせる編集値はありますが、いつ使えなくなってもおかしくありません。
    ヒットしたと思っても全く関係ない箇所だったりする事もしょっちゅうありますので、 この辺りは必ず念頭においてください。

実際の書き換え値は 後述 「バイナリ書き換え値まとめ一覧記事へのリンク」 で紹介中です

4. 書き換えた Chrome.dll をオリジナルの物と差し替える

あとはインストールフォルダにある Chrome.dll を、改造したChrome.dllで上書きすればOKです

※ 上書き前に 当該ブラウザは予め全て終了させてください

SRWare Iron Portable

  • 入手先
    SRWare Iron Stable for Windows / Portable
    https://www.srware.net/iron/ ( 最新版 )
    http://download1.srware.net/old/iron/win/ ( 過去バージョン )

  • 起動 / その他情報
    \IronPortable.exe で起動させると、ユーザープロファイルが同階層 \Profile\ フォルダとして作られる模様。
    \Iron\chrome.exe および \Iron\iron.exe での起動は、
    C:\Users\[ユーザー名]\AppData\Local\Chromium 配下にプロファイルが作成される模様。
    ( ユーザープロファイル...ログイン情報とかキャッシュとかインストールした拡張機能が放り込まれる場所です。
    今後そのソシャゲを Iron で遊ばなくなった場合、上記フォルダをまるっと消せばデータの後片付けがきれいに終わります )
    改造先バイナリ位置は /Iron/chrome.dll

CentBrowser Portable

  • 入手先
    https://www.centbrowser.com/ トップページから History を開く
    https://www.centbrowser.com/history.html にて、任意リリースバージョンが選択できる

  • 起動等
    自己解凍形式で展開後 chrome.exe 立ち上げ。
    そのまま User Data フォルダ内にユーザープロファイルが作成される模様。
    改造先バイナリ位置は /[バージョン番号]/chrome.dll ( 例 : /5.1.1130.129/chrome.dll )

✨ バイナリ書き換え値まとめ一覧記事へのリンク ✨

以下の支援サイトにて、気が向いた時に更新しており、
「どのバージョンの書き換え値が記載されているか」の一般公開記事も別途用意しています。
ご支援前に、バージョン情報をチェックしてください。
原則、横幅制限解除値のみ扱っており、それ以外は上位の限定プランにて 気分/気力次第で扱うものとお考えください。
内容は1バージョンのバイナリ書き換え値のみ載せた簡素なものであり、解析用資料などは提供されていません。

  • 他バージョンが知りたい
    また、「最近更新されてないみたいだけど、直近でアプデされたChromium系の特定バージョンで使える横幅書き換え(等)が知りたい。上手く解析できたなら(一時的にでも)プラン加入するんだけど、どない?」
    ...といった思惑の方もお気軽にご相談ください。
    確約は出来ませんが、無理のない範囲でしたらお応えできるかもしれません。

    ※ 有料プランのご支援者様に限ります (ご支援予定前の打診段階でも構いません)
    ※ 基本 windows x64 前提となります
    ※ 露骨な変動がない限り、当面のバージョン間は使いまわせるケースも多いです

💙 Xfolio / ファンコミュニティ

私事ですが、昨今の画像生成AIを取り巻く諸事情により、支援サイトの注力先を、上記 Xfolio へと向けています。
まだまだ発展途上に感じられるサービスですが、応援の気持ちを込めて 現在はこちらへ情報を集約しています。

筆者へのコンタクト / 留意点

総合ページ https://packetroom.net/ のプロフィールリンクから辿れる PixivアカウントのDM宛てだと、
ほぼ確実に・素早く届くと思うので、こちらを推奨しています。

また、うろ覚えですが、支援サイトでの運用を始めてから 10人前後の方から要望を受けて対応(≒解析)した記憶があります

宛先 気付きやすさ
Pixiv のDM ◎ … メール連携をしているので、気付きやすい
Twitter ( 現:𝕏 )のDM 〇 … メッセージリクエスト扱いにより、気づきにくい場合アリ
PixivFanbox 記事へのコメント △ … 更新見送り中 / 普段確認する習慣がない
PixivFanbox のDM △ … 更新見送り中 / 普段確認する習慣がない
Xfolio のDM 未実装ぽいです
Xfolio 記事へのコメント × … コメント欄閉鎖中です
Fantia 記事へのコメント × … 事実上閉鎖中
Fantia のDM × … 事実上閉鎖中

ちなみに

元々自分がやりたかった事とはいえ、これら解析系にどの程度手間を割いたのか一応書いておくと、
毎日かなりの時間を費やして、知識0の所からほぼまるまる一ヶ月を要して辿り着きました。
他の物も合わせると、ノウハウ会得に合計二ヶ月くらいは掛かっているかもしれません。

当時は1,2年ほど、書き換え値や当時のノウハウをある程度、無償で公開/周知させていました。

別記事移転 ※ 当時の名残的な記事です


創意工夫で、快適なブラウザソシャゲライフを、なのです!


▼ ここから下は GoogleChrome の書き換えを行っていた当時の記事・説明名残です ▼

【!】 Google Chrome バイナリ書換における留意点【!】

改造に伴い 以下のデメリットが2点発生します

  1. ⚠️ 一部サブスク視聴系サービスでエラーが起きる
    コンテンツが受信出来なくなる厳格な仕様が存在し、それに引っかかるぽいです。
    このため、改造ブラウザではAmazonPrimeやSpotifyなどが視聴できなくりなります。
  2. ⚠️ 自動強制アップデートで初期化される
    GoogleChromeは自身のアップデートを頻繁に行うので、そのたびに改造がリセットされます。
    (ただし後述の Chromium ブラウザは、自らの自動更新を行ないません)

とはいえ、これらデメリットは Chromeをコピーして使い分ける または ChromiumをDLして使い分ける 事で2ついっぺんに回避可能です。

以下、デメリット回避のユースケース3例

  • ケース1
    Chromeをメイン利用
    別の場所へコピーしたChrome をソシャゲ用に改造+運用。
    メインのChromeはそのままなので、サブスク視聴OK , アップデートも今まで通り。

  • ケース2
    Chromeをメイン利用
    Chromium ブラウザを新しくDLしたものをソシャゲ用に改造+運用。
    メインのChromeはそのままなので、サブスク視聴OK , アップデートも今まで通り。

  • ケース3
    FireFoxやEdge,Vivaldi等をメイン利用。
    Chromium ブラウザを新しくDLしたものをソシャゲ用に改造+運用。
    ケース1,2同様、メインブラウザには一切干渉しない

いずれも 「改造したブラウザは、メインではなくソシャゲ用(など)に絞って使う」 事で、前述のデメリットを一切受けずに済みます。
というかむしろ 「スマフォサイズで遊ぶソシャゲを、態々メインブラウザでプレイする」 なんてケースのほうが面倒くさいでしょうから、
一度環境を整えてしまえばOKな上記ユースケースの方が、はるかにメリットがある...と言えるのではないでしょうか。

改造済Chromeのサブ運用方法

ここからはソシャゲ用ブラウザの準備や、運用テクニックを紹介していきます

筆者が仕込んでいるギミックはこちら↓

  • GoogleChromeをコピー(+バイナリ書き換えで改造)したものを、ソシャゲ用に使う
  • 改造Chromeは .vbs ファイルを経由させて起動し、以下の恩恵を受ける
    • 効果1 : メインと完全に切り分けたChromeとして扱える(別プロファイル)
    • 効果2 : 起動時にUA指定コマンドを含ませ、拡張機能なしでUA偽装を行う (好みによる)

1.Chrome を別の場所へコピーしておく

※ Chromium ブラウザをDLして使う方は、「コピーしたChrome」→「DLしてきたChromium」に適宜解釈してください

大抵の方であれば C:\Program Files (x86)\Google\Chrome\Application\ フォルダ内に GoogleChrome 本体が格納されていると思います。
この中身を丸ごと、任意の場所へコピーしてください

自分は C:\MyProjects\ChromeCustomize\SubChrome\ という場所で運用しています。

以降、コピーしたChromeはアップデート対象とはなりません。 ( 自らの更新時、エラーが発生して処理が中断されるので )

2.サブブラウザは .vbs ファイルで経由させる

これに関しては 既にChromeのショートカットを編集したり、別途 .bat ファイルなどに命令を書き込んで運用しているソシャゲーマーの方もいらっしゃるかもしれません。
自分は .bat ではなく .vbs に処理を書いて運用しています

※ 画像は運用イメージ。 このファイルを実行すれば、サブのChromeが立ち上がるという寸法

以下、1つの .vbs ファイルで、2アカウント分のソシャゲブラウザを一気に同時起動 させる内容です。
※ 一部のコマンド・ファイル位置は自身で用意した環境に応じて変えてください

下記をコピーして適当な新規テキストファイルへ貼付保存のち、
その拡張子を .txt から .vbs に変更するだけで(筆者用の内容にはなりますが)完成です。
後述のテキストを読めば、馴染みの無い方でも 軽い改造・カスタマイズ程度は出来るかなーとも思います。

Dim ExePath
ExePath = "C:\MyProjects\ChromeCustomize\SubChrome\chrome.exe"

Dim UA_iPhone
UA_iPhone = """ --user-agent=Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5"""

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run ExePath & " --user-data-dir=c:\socialgame\01 " & UA_iPhone
WshShell.Run ExePath & " --user-data-dir=c:\socialgame\02 " & UA_iPhone

二重引用符 " がやたら重なっていたり、一見不要と思われる半角スペース等が混ざっているように思われますが、 削ると正常に認識されなくなったりエラーが発生しますのでご注意。

ExePath = の右辺は、コピーしたサブChromeの chrome.exe 位置です

UA_iPhone = の右辺は、起動するChrome側に「これから、このUAモードで起動してね」との命令を与える下準備に相当します。
環境によっては改行されているように見えますが、横に長い一行分として記述してください。
あと、やたら """ が多いですが、これはそういうものだとスルーしてください。

WshShell.Run の箇所にて、コピーした chrome.exe を実行させつつ、
同時に「クッキー情報やキャッシュなどを格納するフォルダの位置」を決め打ちで指定しており、
更に、先程用意したUA情報も与えています

逆にもし「UA偽装は拡張機能で切り替えたい。 起動時からの強制UA偽装は不便」
...という考えであれば、下記のように、& UA_iPhone の箇所を削ればOKです。
「UA偽装の用意はしたけれども、結局使いませんでした」 みたいな感じになります。

' ...前略...
WshShell.Run ExePath & " --user-data-dir=c:\socialgame\01 "
WshShell.Run ExePath & " --user-data-dir=c:\socialgame\02 "

さて、" --user-data-dir=c:\socialgame\[ホニャララ] " という箇所がありますが、
これは先程触れた「メインと完全に切り分けたChromeとして扱う」という命令のようなもので、
ここで指定した場所に、クッキー情報・設定ファイル・キャッシュ...etcを全て格納するよう振る舞わせます。
「別のユーザープロファイルで扱う」と説明したほうが人によっては伝わり易いかも。

丁度 c:\socialgame\01c:\socialgame\02 が格納先に相当します。
あらかじめ c:\socialgame\ というフォルダ(場所も名前も任意)さえ作成しておけば、あとはそこに上手い事格納してくれます

今後もし、そのソシャゲをアカウント削除・引退・休止等して、サブブラウザでの運用が不要になれば
そのブラウザログイン情報等が格納されているフォルダ ( つまり、対応する c:\socialgame\[ホニャララ] ) を削除することで、
不要になったブラウザ情報設定をユーザープロファイル単位で全て消す事も出来ます。

勿論 これらを削除しても、メインで使っているGoogleChromeのキャッシュはまた別のところにありますので、そちらへの影響はありません。

UA情報を扱う時の注意点

.vbs 内部でUAを直接操作して起動させる場合、
UA情報に応じて ChromeExtension(拡張機能)の管理ページが表示されなくなる という不具合(?)を確認しています。

様々なUAパターンで逐一確認はしてないものの 幾つか試したところ、新しいものだと出なくなるケースがある様で
敢えて少し古め?のUAで起動すれば、問題なく拡張機能ページが表示される事を自環境で確認しています。

このトラブルに陥った場合は、UA文字列を変えてみると良いでしょう。

ちなみに、自環境で拡張機能ページが問題なく開けたUA文字列( --user-agent= 右辺相当 )は以下となります

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5

.vbs サンプル画像紹介

※ スクショサイズの関係上、UA偽装文字列の右端が見切れています

.vbs 起動に関する補足事項

UA偽装無しで構わなければ、数行減らして書けます

Dim ExePath
ExePath = "C:\MyProjects\ChromeCustomize\SubChrome\chrome.exe"

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run ExePath & " --user-data-dir=c:\socialgame\01 "
WshShell.Run ExePath & " --user-data-dir=c:\socialgame\02 "

上記は2アカウント同時起動ですが、単に1アカウントだけの起動なら
以下のように実行命令を1行分減らせばOKです

Dim ExePath
ExePath = "C:\MyProjects\ChromeCustomize\SubChrome\chrome.exe"

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run ExePath & " --user-data-dir=c:\socialgame\01 "
' ※ ここ一行削っただけ

この様に、自分なりにカスタマイズした .vbs から起動することで、
メインのGoogleChromeとは完全に切り離されたサブChromeとして立ち上げる事が出来ます。