
zafrida-ui v0.3.7
PyCharm / JetBrains IDE 内の Frida UI ツールウィンドウ。
中文 | English
ZAFrida UI - PyCharm Frida Plugin
現在のバージョン: 0.3.7
0.3.7 の主な更新
- 各 ZAFrida Project で Python/Frida 環境を個別に選択または共有可能。デフォルトでは現在の PyCharm プロジェクトのインタープリタを使用し、venv、Conda、uv、Poetry、Pipenv、Hatch などのローカル環境に対応。
- Session UI と Project Settings を再設計し、プラグイン、Python、Frida のバージョン情報を完全に表示。適応型でドラッグ可能なログパネルとセッション状態を最適化。
.js/.ts、Frida 16/17、複数プロジェクト環境の切り替え、および USB、Remote、Gadget の 3 つの接続フローを完全サポート。- ローカル HTTP API、CLI、中国語 Skill のデバイス復旧、セッション待機、増分ログ機能を強化。重複して不安定だった MCP アダプタ層を削除。
プロジェクト紹介
PyCharm/IntelliJ 向けに設計された Frida グラフィカルツール
ZAFrida UI は、PyCharm および JetBrains シリーズ IDE に統合された Frida グラフィカル操作プラグインです。Frida のコマンドライン操作の煩雑さやスクリプト管理の混乱を解決することを目的としており、デバイス、プロセス、スクリプト、ログを管理するための完全な UI インターフェース を提供します。
中核となるハイライトは、その 「チェックボックス式」テンプレート管理システム です。ユーザーはチェック/チェック解除により、コードスニペットをメインスクリプトに動的に挿入したりコメントアウトしたりでき、「ブロック組み立て式」の Hook スクリプトを実現できます。また、プラグインには完全な プロジェクト管理 (zafrida-project.xml) が組み込まれており、複数デバイス・複数環境設定の高速切り替えに対応しています。
ZAFrida は Frida を置き換えるものではなく、frida-tools の強力な UI シェルとして、既存の Python および Frida 環境とシームレスに連携します。
簡易版 Wiki: ZAFrida UI 簡易 Wiki (BBS)(より簡易な Wiki です) 詳細な使用チュートリアル: ZAFrida UI 詳細使用チュートリアル Wiki
デモ

クイックスタート
- プラグインのインストール: IDE のプラグインマーケットプレイスで「ZAFrida」を検索するか、ディスクからインストールします。
- デフォルト環境の設定: デフォルトでは現在の PyCharm プロジェクトの Python Interpreter を使用します。グローバル
Settings->Tools->ZAFridaにはツール名/パスのデフォルト値のみを保持します。 - プロジェクトの作成: プロジェクトビューで右クリック ->
New Frida Project。- そのプロジェクトで異なる Frida バージョンが必要な場合は、ZAFrida
Project Settingsを開き、Python インタープリタまたは環境ディレクトリを選択してTestをクリックします。
- そのプロジェクトで異なる Frida バージョンが必要な場合は、ZAFrida
- スクリプトの作成/選択: Run パネルで
agent.jsまたはagent.tsを選択します。 - Hook デバッグ:
- デバイスに接続 (USB または Remote または Gadget)。
- 対象プロセスまたはパッケージ名を選択。
- Run をクリック。
- テンプレートの使用:
Templatesタブに切り替え、必要な Hook 機能(例:「SSL Pinning Bypass」)にチェックを入れると、コードが自動的にスクリプトに注入されます。 - Skills 自動化(オプション): デフォルトではオフ。
Settings/Preferences -> ZAFrida -> Skills HTTP APIに移動し、Enable Skillsにチェックを入れるとローカル API が自動起動します(手動Start/Stopも可能)。CLI とテンプレートの場所:- Skill とメイン CLI:
skills-template/zafrida-http-control/ - 旧パス互換ランチャー:
skills-cli/zafrida_skill_cli.py
- Skill とメイン CLI:
交流グループ QR コード
機能特徴
-
デバイスとプロセス管理
frida-ls-devicesとfrida-psを統合し、ワンクリックでデバイスリストを更新、実行中プロセス、実行中の App、インストール済みアプリを表示できます。 -
マルチモード接続
USB / Remote / Gadget モードを完全サポート。カスタムリモート Host と Port に対応し、複雑なコマンドライン引数を手動で組み立てる必要はありません。 -
対話型スクリプト実行(Run / Attach)
- 単純な「モード切り替え」ではなく、Run(デフォルト Spawn) と Attach の 2 つの実行アクションをサポート。
- Force Stop による対象アプリの強制停止をサポート。
- 組み込みコンソールログ出力、ログはプロジェクトディレクトリ
zafrida-logs/に自動保存。
-
JS / TypeScript エディタ右クリックメニュー(重要)
- Frida
.jsまたは.tsファイルの編集領域で右クリックし、直接選択可能:- Run Frida Script: 現在のファイルをメインスクリプトとして実行(デフォルト Spawn)。
- Attach Frida Script: 現在のファイルを追加スクリプトとして実行中の対象プロセスに注入。
- 実行前に現在のファイルを自動保存し、スクリプトが属する ZAFrida Project に自動的に切り替えます。
- 迅速な PoC、Demo 検証、Gadget モード、または実行中プロセスへの即時注入に適しています。
- ショートカットキー:
- Windows / Linux:
Ctrl + Alt + S - macOS:
⌘ + ⌥ + S
- Windows / Linux:
- Frida
-
エディタ右クリック Snippets 挿入
- JS / TypeScript エディタの右クリックメニューに ZAFrida Frida Snippets を提供。
- 一般的な Frida コードスニペットをワンクリックで挿入。例:
Java.performラッパー構造- Java メソッド Hook テンプレート
Interceptor.attachNative Hook
- 挿入プロセスは IDE WriteCommandAction に従い、安全に元に戻す/やり直しが可能。
-
動的テンプレートシステム(中核的イノベーション)
- Android / iOS の一般的な Hook テンプレートを内蔵(SSL Pinning Bypass、Method Hook、Native Hook など)。
- チェックボックス制御: チェックするとコードが挿入され、チェックを外すとコードが自動的にコメントアウトされます。手動での削除・変更は不要。
- カスタムテンプレートをサポートし、IDE 内でテンプレートコードをリアルタイムプレビュー可能。
-
Run Script + Attach Script 分離設計
- メイン Run Script と独立した Attach Script の併存をサポート。
- 「起動時 Hook」と「実行時注入ロジック」を分離するのに適しており、複雑なデバッグと長期的なメンテナンスに便利。
-
プロジェクト化設定(ZAFrida Project)
- ZAFrida Project の概念を導入し、デバイス、ターゲット、スクリプト、Attach Script、接続パラメータなどを完全な作業コンテキストとして保存。
- Project View で以下をサポート:
New Frida Projectで新規プロジェクト作成Select Frida Projectで現在アクティブなプロジェクトを迅速に切り替えLoad Frida Projectで既存のプロジェクトディレクトリをインポート
- プロジェクト切り替え後、UI 状態と設定は自動的に復元されます。
-
スマート Python / Frida 環境解析
- デフォルトで現在の PyCharm プロジェクトの Python SDK を解析。各 ZAFrida Project でインタープリタまたは環境ディレクトリを個別に上書き可能。
- ローカル system/pyenv、venv/virtualenv、Conda、uv、Poetry、Pipenv、Hatch 環境をサポート。
- 複数の ZAFrida Project で同じパスを選択して環境を共有可能。venv をコピーする必要はありません。Frida 16/17 環境を個別に管理するのに適しています。
- 現在の IDE 環境または明示的なプロジェクト環境に
frida-toolsがない場合は直接エラーを報告し、システム PATH 内の別バージョンを黙って使用することはありません。Testで実際の Frida バージョンを表示できます。 - SSH、Docker、Docker Compose、WSL などのリモート Python Interpreter は、現時点ではローカル Frida サブプロセスには使用できません。
-
Frida 17 / TypeScript
- ファイル選択、右クリック Run/Attach、Snippets で
.js/.tsをサポート。Frida 17 の REPL は-l agent.tsを自動コンパイルします。 - 組み込みテンプレートは Frida 17 のモダンな Module/NativePointer API に移行済みですが、Frida 16 の一般的な環境でも使用可能です。
- frida-tools REPL は標準の Java/ObjC bridges を互換性のため保持。npm/サードパーティモジュールの
importを使用する場合は、frida-create -t agentまたは同等のプロジェクトで依存関係を管理してください。
- ファイル選択、右クリック Run/Attach、Snippets で
-
Skills ローカル自動化インターフェース
- ローカル Skills HTTP API(デフォルトオフ)は、能力発見、プロジェクト/Python 環境、デバイスとプロセス、Run/Attach、履歴ログリスト、バイトカーソルベースの増分ログ読み取りをサポート。
- Skill には境界付き
wait-device/wait-session復旧フローが組み込まれており、安全に再試行可能な読み取りと自動リプレイできない副作用操作を区別します。 - 有効化方法:
Settings/Preferences -> ZAFrida -> Skills HTTP APIでEnable Skillsにチェック。 - 付属 CLI とテンプレート:
skills-template/zafrida-http-control/(メイン Skill と CLI)skills-cli/zafrida_skill_cli.py(旧パス互換ランチャー)
適用シーン
ZAFrida UI は、Frida を使用したリバースエンジニアリングのあらゆるシーンに適しています。特に:
- Android / iOS App のペネトレーションテストとリバース解析。
- 異なる Hook スクリプトを頻繁に切り替える必要があるデバッグプロセス。
- IDE (PyCharm/IDEA) で Python、JavaScript、TypeScript の混在開発に慣れているエンジニア。
技術ドキュメント
-
環境要件:
- IntelliJ IDEA または PyCharm (2024.3+ 推奨)
- ローカルに Python3 と
frida-toolsがインストールされていること (pip install frida-tools) frida、frida-ps、frida-ls-devicesがシステム PATH にあるか、プラグイン設定でパスを指定していること。
-
問題報告: Github Issues
プロジェクトの起動
- ソースコードをクローン:
git clone https://github.com/yilongmd/zafrida-ui.git - IntelliJ IDEA でプロジェクトを開きます。
- Gradle タスク
runIdeを実行してデバッグ環境を起動します。
システム画面
メインインターフェースと実行パネル (Run Panel)
デバイス選択、スクリプト選択、実行モード設定、コンソール出力を提供します。

動的テンプレート管理 (Template Panel)
左側でカテゴリを選択、中央でテンプレートにチェック、右側でコードをリアルタイムプレビュー。チェックボックスがスクリプト内容の有効/無効を直接制御します。

設定画面 (Settings)
Frida ツールパス、リモート接続アドレス、ログ設定のカスタマイズをサポートします。

プロジェクト作成ウィザード
標準化された Frida プロジェクト構造を迅速に作成します。

技術アーキテクチャ
開発環境
- 言語: Java 21、Java、ビルドスクリプトは Gradle Kotlin DSL
- フレームワーク: IntelliJ Platform SDK
- ビルドツール: Gradle
- 依存関係:
fridafrida-tools(Python environment)
謝辞
本プロジェクトに Frida JS スクリプトテンプレートを提供してくださった以下の方々に特に感謝します:
- 小佳
- Lane
- 迷人
その他の貢献者と謝辞については: CONTRIBUTORS.md をご覧ください。