
非公式のVSCode向けfrida拡張機能
これはコミュニティ貢献プロジェクトであり、公式のFridaチームとは関係ありません。Fridaスクリプティング体験を向上させるためのVisual Studio Code用オープンソース拡張機能として、@CodeColoristによって開発・保守されています。
inetcatコマンドでSSHシェルを起動するため)Windowsを使用している場合、USB経由でiOSデバイスとやり取りするにはiTunesを開いたままにする必要があります。
PEP0668のため、pip3 install frida-toolsをグローバルに実行するとエラーが発生する可能性があります。
推奨される方法は、VSCodeでフォルダー(ワークスペース)を開き、Python拡張機能を使用して仮想環境を作成・アクティブ化することです。この場合、拡張機能は現在アクティブなPython venvを使用してfridaコマンドを読み込みます。
あるいは、pipxやUVなどのパッケージマネージャーを使用して、分離された状態を保ちながら$PATHにインストールすることもできます。

接続されたデバイス上のアプリとプロセスをサイドバーパネルに一覧表示します。右クリックでアタッチ、ローカルターゲットへの昇格特権付きアタッチ、スポーン、サスペンドモードでのスポーン、プロセスの強制終了、またはデバイス/プロセス情報のクリップボードへのコピーができます。ローカル、USB、リモートデバイスに対応しています。ローカルプロセスのエントリには、実行可能ファイルのパス、所有者、親PID、引数など、利用可能な場合のベストエフォートのメタデータが含まれます。
アタッチされた任意のプロセスについて、読み込まれたネイティブモジュールとそのエクスポート関数を閲覧できます。モジュールを名前でフィルタリングし、ベースアドレス、サイズ、パスを確認してから、フック生成用のエクスポートを選択できます。
JavaとObjective-Cの両方について、ランタイムのクラスとメソッドを探索できます。クラスのフィルタリング、自身のメソッドと継承メソッドの切り替え、フック生成用メソッドの一括選択が可能です。また、プロトコルの閲覧と分析を行うObjective-Cプロトコル検査も含まれています。
リバースエンジニアリング用にクラスヘッダーをダンプします:
モジュールパネルとクラスパネルからFridaフックコードを生成します:
onEnter / onLeaveコールバック付きInterceptor.attach()Java.perform() / Java.use()フックJavaScript / TypeScriptでFridaスクリプト向けのコンテキスト認識型補完:
ObjC.classes.<ClassName> — Objective-Cのクラス名を補完ObjC.classes.Foo['<method>'] — メソッドセレクタを補完ObjC.classes.Foo.method — クラスメソッドセレクタを補完Java.use('<ClassName>') — Javaのクラス名を補完Process.getModuleByName('<name>') — 読み込まれたモジュール名を補完言語サーバーはターゲットプロセスのコンテキストに依存します。ワークスペースに設定ファイル.vscode/frida.jsonを作成する必要があります。最も簡単な方法は、サイドバーでプロセスまたはアプリを右クリックしてSet LSP Targetを選択することです。これによりファイルが自動的に生成されます。
.vscode/frida.jsonの設定このファイルは、LSPがアタッチするデバイスとターゲットを指定します。deviceフィールドと、app、pid、processのうちいずれか1つが必要です。
アプリ識別子でアタッチ(推奨 — アプリをスポーンまたはアタッチ):
{
"device": "local",
"app": "com.example.myapp"
}
プロセス名でアタッチ:
{
"device": "local",
"process": "myprocess"
}
PIDでアタッチ(複数のプロセスが同じ名前を共有する場合に便利):
{
"device": "local",
"pid": 1234
}
deviceの値はFridaのデバイスIDに対応します — localはホストマシン、usbはUSB接続デバイス、host:port文字列はリモートデバイス用です。
LSPはこのファイルの変更を監視します。編集または再作成すると、新しいターゲットで言語サーバーが自動的に再起動されます。
アタッチされたプロセスからリアルタイムのアプリケーションログをストリーミングします。
ブレークポイントを使用したFridaスクリプトのデバッグ用に、VSCodeのlaunch.jsonとtasks.jsonを生成します。
Androidデバイスの場合、Open Shellはadb shellのラッパーです。
iOSの場合、脱獄済みデバイスでSSHシェルを提供します。認証情報の設定が必要な場合があります。
サイドバーからhost:port経由でリモートのFridaデバイスに直接接続します。