LoginSignup
0
0

More than 1 year has passed since last update.

Chrome拡張機能をハックしてみる

Last updated at Posted at 2023-02-10

はじめに

Chrome Web Storeなどで配布されているChromeの拡張機能に、コードを埋め込んで任意のコードを実行させる方法を紹介します。
配布されている拡張機能がどんな動きをするのかを知るために使えるかもしれません。

Chrome拡張機能ディレクトリ

OSによって微妙に異なりますが、Chrome Web Storeからインストールした拡張は、macOSの場合はこの位置に保存されます。

/Users/user/Library/Application Support/Google/Chrome/{Profile name}/Extensions/

今回は実験用として Dark Reader をインストールしてみました。

この拡張機能はWebstoreでのIDが eimadpbcbfnmbkopoojfekhnkhdbieeh なので、この名前のディレクトリで保存されています。

$ ls -l ~/Library/Application\ Support/Google/Chrome/Profile\ 4/Extensions/
total 0
drwx------@ 4 user  staff  128  2 10 16:48 eimadpbcbfnmbkopoojfekhnkhdbieeh # ←これ

直接改変するとエラー

場所を特定できたので動きを分析したいだけであればもう十分ですが、実際にコードに変更を入れてそれを読み込ませてみます。
直接変更を加えるとブラウザ側でエラーが発生する仕様になっているので、一旦適当な作業用ディレクトリにコードを退避してから作業します。

直接改変した際に発生するエラー:
スクリーンショット 2023-02-10 17.00.46.jpg

改変してみる

ということでデスクトップにコピーして作業します。

$ cp -r ./eimadpbcbfnmbkopoojfekhnkhdbieeh ~/Desktop

今回は作業ディレクトリ直下のmain.jsに Hello chrome! と表示させるコードを追加してみました。

console.log('Hello chrome!');

今回はこれだけです。
コードの編集が終わったら 拡張機能のページ の「デベロッパーモード」から「パッケージ化されていない拡張機能を読み込む」と進みます。
するとディレクトリの選択が求められるので、先程コピーした作業用ディレクトリの manifest.json が含まれれるディレクトリを選択します。
これで準備完了です!

ページを開いてみる

準備が整ったので、実際に改変した拡張機能のコードが実行される様子を見てみます。
今回は試しにブラウザコンソールに 'Hello chrome!' と出力するコードを追加してみました。

ブラウザコンソールを開いた状態で適当なページを開いてみます。

スクリーンショット 2023-02-10 17.20.11.jpg

きちんと出力されているのが確認できますね。

気になった拡張機能をデバッグしてみるのに使えそうですね。
以上、拡張機能にコードを埋め込む方法でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0