ひげさんのチラ裏だったりカンニングペーパーだったり学習ノートだったりする所です。

概要・経緯

Google Chrome Extension (拡張機能)を開発している、99.999%のChromeユーザーさんが「うざいナリ...」と思っている例のポップアップウィンドウ

デベロッパーモードの拡張機能を無効にする

デベロッパーモードで実行されている拡張機能はパソコンにダメージを与える恐れがあります。デベロッパーでない場合は、安全のため、デベロッパーモードで実行されているこれらの拡張機能を無効にしてください。

Chrome立ち上げの度に出てきて非常にウザイ。
簡易的に切る方法がそもそもない。これに辟易して別のChromium系ブラウザに変えた方も居るのではないでしょうか...

とりあえずこの邪魔でうざくて人類悪なポップアップを表示させないようにします。目指せ非表示快適ライフ

判明している副作用

AmazonPrimeVideoの再生といった一部の厳格なサービスでエラーが出るとのこと
(Chrome.dllの書き換えを検知しているのだと推測)

編集手法

GoogleChromeがインストールされているフォルダから Chrome.dll を探し、これを バイナリエディタ で編集します。

大抵のケースだと、Chrome.dll
C:\Program Files (x86)\Google\Chrome\Application\[バージョン値]
配下にあると思うのですが、セキュリティの制約的に直編集はできない かもしれません。

一度 Chrome.dll をデスクトップなどにコピーして、それを編集したのち、再び戻して上書き、といった手法が面倒が無くて良いと思います。

v 75.0.3770.80 x64 時点

※ 2019/06/05 編集

以下の内容でデータ検索をかけると 一件だけヒットするので、そこを書き換える
83 F8 02 7F 81

83 F8 09 7F 81

( 実際は 09 でなくても、確か4か5超過の値であれば良かった気がします )

旧手法

83 F8 02 0F 8F 45 FF FF FF で検索
83 F8 02

83 F8 09

神記事

別の調べごとをしている流れで偶然みかけた国外の記事なのですが、翻訳にかけた瞬間、目を疑いましたね...
いやぁ、世界は広いです。

リンク先記事では別ツールなどを導入して解析させるといった細かい手順を示していますが、結果的にはバイナリだけ書き換える話なので、そこだけ要約している形になります。

※こちらの方法は現在使えません
https://zhuanlan.zhihu.com/p/58111436

技術的な事

https://cs.chromium.org/chromium/src/chrome/browser/ui/extensions/extension_message_bubble_factory.cc
および
https://chromium.googlesource.com/experimental/chromium/src/+/master/chrome/browser/ui/extensions/extension_message_bubble_factory.cc

公開されている Chromium と GoogleChrome の一部ソースコードです。
差異はあれど、大まかには以下のような感じとなっています

bool EnableDevModeBubble() {  
  if (extensions::FeatureSwitch::force_dev_mode_highlighting()->IsEnabled())  
    return true;  
  // If an automated test is controlling the browser, we don't show the dev mode  
  // bubble because it interferes with focus. This isn't a security concern  
  // because we'll instead show an (even scarier) infobar. See also  
  // AutomationInfoBarDelegate.  
  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();  
  if (command_line->HasSwitch(switches::kEnableAutomation))  
    return false;  
#if defined(OS_WIN)  
  if (chrome::GetChannel() >= version_info::Channel::BETA)  
    return true;  
#endif  
  return g_override_for_testing == ExtensionMessageBubbleFactory::OVERRIDE_ENABLED;  
}  

開発者モードのポップアップ に関する処理というのが名前から推測できます。
返すのは bool値 なので、余計に「それっぽく」見えますね。

if (chrome::GetChannel() >= version_info::Channel::BETA)  

この一部分をアセンブリ上で弄り、true を返さないようにしています。

上で出した元記事にもありますが、以前は "ExtensionDeveloperModeWarning" の参照文字列が Chrome.dll に含まれていたのですが、それがなくなってしまったようです。 アテにしていた足掛かりが途絶えてしまったので、今回はコード内で使われている switches::kEnableAutomationの値"enable-automation" を足掛かりに、自力でアセンブリを調べました。

この記事へのコメント

まだコメントはありません