プロフィール

髭山髭人(ひげひと)

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

このサイトについて

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

サ終した Qrunch (クランチ) と呼ばれる技術ブログサービスに掲載していた記事も含まれます

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

はじめに

  • このページでは以下の情報を紹介しています

    • GoogleChrome(Chromium系)ブラウザのバイナリ書き換えで出来る事
    • 書き換え改造前に必ず知っておいて欲しい留意点
    • 改造したChromium系ブラウザをソシャゲ専用ブラウザとして使い分ける(起動する)方法の解説
    • バイナリ編集値をまとめた記事へのリンクURL ✨
  • 以下のような方向け

    • 横幅が狭いタイプのブラウザソシャゲをPCで遊んでおり、
      尚且つ、幅が500pxから縮められず、不便な思いをしている方

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

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

筆者が編み出した主要処理は以下の4つ。

1. 最小横幅制限の解除

通常のChromium系ブラウザは、ウィンドウ横幅の最小が500pxですが、これを外せます(=下限値の変更)
左から順に 通常の最小幅500px / 329px(改造済) / 120px(改造済)

2. タブ検索ボタンの非表示

昔はオプションで消せましたが、現在は非表示にできません。

改造して横幅を更に縮めていると、このタブ検索ボタンがかなり悪目立ちするんですよね...
そりゃあ消したくもなりますよ ( ← 半ば自分で蒔いた種 )

右側が、バイナリ編集で消し飛ばした状態です。

3.スキーム文字列の非表示

http接続時に表示される「保護されていない通信」の文字列 を消します。

http 接続だとこの文言が幅を取ってしまい、メニューボタン等が右側に追いやられ気味となりますが、
消してしまえば https接続と同等のレイアウト になります。

( 左上=通常http接続 / 右側=https接続 / 左下=消去後http接続 )

4.ロケーションバー幅の下限撤廃

URLバー(ロケーションバー)の横幅下限値を無くして、拡張機能アイコンを折りたたまれにくくします。
また、運用幅にもよりますが、メニューアイコン等も見切れづらくなります。

比較画像は上下どちらも改造済みですが、下はホームボタンをONにしています。
( この場合、仕様的にホームボタンが優先されるため、拡張機能アイコンが一つ折りたたまれています )

1~4 全部乗せ

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

上記のバイナリ書き換えを全て施したものがこちら ↓
本ケースでは GoogleChrome 99.0.4844.82 (x64) を改造しています。

【!】バイナリ書き換え前に必ず知っておいて欲しい情報【!】

改造によるメリットは上で紹介した通りですが、それに伴い 2つほどデメリットが生じ得ます。
ただまぁ、それも使い方によっては回避できる(=デメリットと感じずに済む)のですが。

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

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

以下、回避前提でのユースケースを紹介します

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

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

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

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

改造済ブラウザのサブ運用方法

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

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

  • 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文字列( --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として立ち上げる事が出来ます。

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

以下2つの支援サイトにて、気が向いた時に更新しており、
Fantia では 「どのバージョンの書き換え値が記載されているか」のリストを一般公開しています。
ご支援前に、必ず欲しい情報のバージョンが掲載されているかを確認してください。
原則、横幅制限解除値は必ず載せています。
その他は気分/気力次第ですが、ご支援者さんの要望があれば余裕ある限り応えたいとは思います。

👆 PixivFANBOX にも同様の記事を置いてありますので、Fantiaでバージョン確認のち、お好きな方を選んでください

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

筆者へのコンタクト候補として、こちら総合ページ https://packetroom.net/ から辿れる、
Twitter や pixivアカウントのDM宛てだと、ほぼ確実に・素早く届くと思います。
( それ以外は気づくの遅れやすくなります )

ちなみに

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

今となってはやや古いですが、向こう1,2年ほどは書き換え値や当時のノウハウをある程度、無償で公開/周知させていました。
chrome.dll 改造メモ - 横幅制限箇所を探るまでのノウハウ
chrome.dll 改造メモ - LocationIconView や LocationBarView の特定
別記事移転

バイナリ書き換え手順の説明

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

ファイルの内部データを書き換えることに特化したソフト みたいなものです。
某 プ〇アクションリプレイとか、ああいうノリで書き換えると言えば、伝わる方も多そう。
バイナリエディタ あたりでググって自己責任のもと適当なエディタを使ってください。
簡単なUIのものなら、初心者の方でも結構直感的に使えると思います。

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

インストール済みの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つは必ずバックアップしておきましょう。

※ Chromium をDLして使っている方は、場所の移動を行わずとも(システム系フォルダ等に入れていなければ)直接編集が可能です

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

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

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

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

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

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

※ 上書き前に GoogleChrome は予め全て終了させてください


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