IDA Pro 9.x 向けの安全なローカル REST、CLI、MCP、およびエージェントブリッジ
IDA Pro 9.x 向けの自律型 AI および MCP 制御レイヤー
IDA Pro をエージェント型リバースエンジニアリングの強力な基盤に変えます。Claude Desktop、Cursor、Antigravity、またはカスタム LLM エージェントを、Model Context Protocol (MCP) または高性能 REST API 経由で接続できます。
┌─────────────────────────────────────────────────────────┐
│ IDA Pro 9.x │
│ ph4ntom_ida_bridge.py (102 REST Endpoints) │
│ 127.0.0.1:13370 (Bearer Token Protected) │
└────────────────────────────┬────────────────────────────┘
│ REST / JSON / SSE
┌────────────────────────────────┼───────────────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ MCP Server │ │ CLI / SDK │ │ AI Agents │
│ 54 Tools │ │ `ph4ntom-ida`│ │ Multi-LLM │
│ Claude │ │ Automation │ │ Gemini │
│ Cursor │ │ Headless │ │ Ollama │
│ Antigravity │ │ Testing │ │ Claude / GPT │
└───────────────┘ └───────────────┘ └───────────────┘
ph4ntom IDA Bridge は、IDA Pro 9.x 向けの localhost 専用制御レイヤーです。自己完結型の IDA プラグイン、JSON REST API、Python クライアント、CLI、54 個のネイティブ MCP ツール、およびオプションのスタンドアロン AI バックエンドを組み合わせています。
バージョン 6.2.0 では、IDA 9.3 との完全な互換性、アトミックなデータベース変更、定数時間トークン認証、SSE カーソル追跡、および完全なテストスイートカバレッジを実現しています。
Claude Desktop、Cursor、または任意の MCP クライアントを、実行中の IDA Pro インスタンスに 60 秒で接続できます:
git clone https://github.com/ph4ntom-rev/ph4ntom-ida-bridge.git
cd ph4ntom-ida-bridge
python -m pip install -e ".[mcp]"
python cli.py install-plugin --ida-dir "C:\Program Files\IDA Professional 9.0"
(または ida_plugin/ph4ntom_ida_bridge.py と api_schema.json を IDA の plugins/ ディレクトリに直接コピーしてください)。
%APPDATA%\Claude\claude_desktop_config.json(Windows)または ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)を編集します:
{
"mcpServers": {
"ida-bridge": {
"command": "python",
"args": [
"C:/path/to/ph4ntom-ida-bridge/mcp_server.py"
]
}
}
}
.cursor/mcp.json または Cursor Settings → MCP に追加します:
{
"mcpServers": {
"ida-bridge": {
"command": "python",
"args": ["-m", "mcp_server"],
"cwd": "C:/path/to/ph4ntom-ida-bridge"
}
}
}
IDA Proを起動し、Ctrl+Shift+A を押してサーバーを切り替え、AIアシスタントに次のようにプロンプトを送ります:
「0x140001000 の関数を検査してください。クロスリファレンスをたどり、マイクロコードを解析し、C の擬似コードに逆コンパイルし、難読化された変数を意味のある名前にリネームしてください。」
| 機能 | ph4ntom IDA Bridge | Gepetto / IDAGPT | Hex-Rays Copilot |
|---|---|---|---|
| アーキテクチャ | 双方向 MCP + REST + CLI | 単一プロンプトラッパー | 独自 UI プラグイン |
| ツール数 | 54 の細粒度 MCP ツール | 1(逆コンパイルプロンプト) | 固定プロンプトアクション |
| AST と制御フロー | 完全な ctree AST + マイクロコード IR(0-7) | 擬似コードテキストのみ | 擬似コードテキストのみ |
| 安全な変更操作 | ロールバック付きのアトミックなバッチ変更 | コメント挿入のみ | UI 内での提案 |
| ライブデバッガー | レジスタ、スタック、メモリ、ブレークポイント | なし | なし |
| 動的実行 | オンザフライの IDAPython 実行エンジン | なし | なし |
| 対応 LLM | 任意の MCP クライアント / Claude / GPT / Gemini / Ollama | OpenAI API のみ | 独自クラウド |
| セキュリティと認証 | localhost 限定、256 ビットトークン、Owner DACL | 平文 API キーを露出 | 独自仕様 |
| IDA Pro 9.3 対応 | 検証済みかつ完全テスト済み | IDA 9+ では動作しない | 公式 |
MCP サーバーは、7 つのリバースエンジニアリング領域にわたる 54 の専用ツールを公開しています:
| カテゴリ | ツール | 説明 |
|---|---|---|
| 🔍 バイナリとセグメント | ping, get_binary_info, list_segments, read_bytes, read_vtable | バイナリのメタデータ、ビット幅、パーミッション、vtable の抽出 |
| 🧩 逆コンパイルと AST | decompile, get_disassembly, get_ctree, get_microcode, get_local_variables, get_function_details | Hex-Rays C 擬似コード、AST ctree JSON、マイクロコード IR(0=PREOPT から 7=LVARS)、プロトタイプ情報 |
| 🕸️ コールグラフと Xref | get_xrefs_to, get_xrefs_from, get_callers, get_callees, get_call_graph, get_basic_blocks, get_strings_used | クロスリファレンス、再帰的な呼び出し元ツリー、基本ブロックの制御フロー |
| 🔎 検索と探索 | search_function, search_bytes, search_text, list_strings, list_names, list_imports, list_exports | ワイルドカードバイト検索(??)、インポートされた DLL 関数、エクスポート、文字列フィルタリング |
| 🏷️ 型と構造体 | list_structs, get_struct, list_enums, list_types, get_type, create_type, create_struct | C 宣言のパース、構造体定義、enum メンバーの検査 |
| ✏️ データベースの変更 | rename_function, comment_function, set_inline_comment, rename_variable, set_variable_type, set_function_type, patch_bytes, batch_mutations, undo, redo, save_database, navigate_to | 検証済みのリネーム、ローカル変数の型付け、バイナリパッチ、アトミックなロールバック |
| 🐞 ライブデバッガー | dbg_start, dbg_set_breakpoint, dbg_continue, dbg_step_into, dbg_step_over, dbg_get_registers, dbg_read_memory, dbg_get_stack | プロセス実行の制御、ハードウェアブレークポイント、ライブのレジスタとメモリのダンプ |
| ⚡ 動的 IDAPython | execute_idapython | 構造化された result キャプチャを伴うリアルタイム IDAPython 実行 |
| 📦 MCP リソース | ida://info, ida://schema | リアルタイムのバイナリメタデータと完全な OpenAPI スキーマ |
このブリッジは IDA Pro 内で動作するため、強力な機能を提供します。バージョン 6 では多層防御のデフォルトを実装しています:
127.0.0.1:13370 にバインドします。~/.ph4ntom_ida_bridge_token に保存します。IDA_BRIDGE_ALLOW_EXEC=1 が必要です。POST /api/import-header には事前設定された信頼済みルートパスが必要です。[!CAUTION] ポート13370をパブリックインターフェース、トンネル、またはリバースプロキシ経由で公開しないでください。完全なハードニングガイダンスについては SECURITY.md を参照してください。
| パス | 目的 |
|---|---|
ida_plugin/ph4ntom_ida_bridge.py | 正規のIDAプラグインおよびRESTサーバー(102エンドポイント) |
api_schema.json | 機械可読なRESTリファレンスおよびOpenAPIスキーマ |
core/client.py | トークンリフレッシュ機能を備えた共有認証済みHTTPクライアント |
cli.py | CLI、プラグインインストーラー、doctor、およびIDAランチャー |
mcp_server.py | 54のツールと2つのリソースを公開するFastMCPサーバー |
agent.py | 5つの交換可能なLLMバックエンドを備えたインタラクティブターミナルエージェント |
swarm_worker.py | 構造化バッチ分析ワーカー |
agent_config.json | IDEエージェント向けの機械可読な統合仕様 |
AGENT_SKILL.md | AntigravityおよびIDEベースのエージェント向けスキル定義 |
付属のCLIは、任意のターミナルからIDAセッションを即座に制御できます:
# Health & info
ph4ntom-ida ping
ph4ntom-ida info
# Functions & strings
python cli.py functions --limit 50
python cli.py strings --filter "socket|http|connect"