IDA Pro MCP Server について
IDA Pro MCP Server は、IDA Pro のセッションを SSE 方式の MCP で公開する IDA Pro プラグインです。Claude などの AI アシスタントから解析内容の問い合わせや操作ができます。バイナリ解析を行うリバースエンジニアに向いています。
主な機能
- 01アドレス指定によるバイトと逆アセンブルの取得
- 02関数のデコンパイル擬似コードの取得
- 03関数・セグメント・インポート・エクスポートの一覧表示
- 04クロスリファレンスと文字列の検索
- 05関数の定義と定義解除
- 06SSE による MCP クライアントの接続
活用シーン
- 01AI アシスタントによるバイナリ解析の補助
- 02クロスリファレンスを使った呼び出し関係の追跡
- 03エントリポイント・インポート・文字列からのプログラム把握
MCP 対応
サーバーとして、プラグインは IDA Pro 内でポート 3000 のローカル SSE 型 MCP サーバーを起動し、Claude などのクライアントに解析ツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://127.0.0.1:3000/sseclaude mcp add --transport http ida-mcp-server-plugin http://127.0.0.1:3000/sse{"mcpServers":{"ida-mcp-server-plugin":{"type":"http","url":"http://127.0.0.1:3000/sse"}}}Cursor で開く{"servers":{"ida-mcp-server-plugin":{"type":"http","url":"http://127.0.0.1:3000/sse"}}}VS Code で開く{"mcpServers":{"ida-mcp-server-plugin":{"type":"http","url":"http://127.0.0.1:3000/sse"}}}{"mcpServers":{"ida-mcp-server-plugin":{"serverUrl":"http://127.0.0.1:3000/sse"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
IDA Pro MCP サーバー
IDA Pro MCP サーバーは、Model Context Protocol(MCP)インターフェースを通じて、IDA Pro をリモートから照会および制御できるプラグインです。このプラグインにより、AI アシスタント(Claude など)がバイナリ解析タスクのために IDA Pro と直接やり取りできます。
概要
このサーバーは、AI アシスタントが次の操作を実行できる一連のツールを提供します。
- 指定したアドレスからバイトデータを取得する
- 逆アセンブルコードを取得する
- 逆コンパイル済みの疑似コードを取得する
- 関数名を照会する
- セグメント情報を取得する
- すべての関数を一覧表示する
- 相互参照を検索する
- インポート/エクスポートテーブルを取得する
- エントリーポイントを取得する
- 関数を定義/未定義にする
- 各種データ型(dword、word、byte、qword、float、double、string)を取得する
- バイナリファイル内のすべての文字列を取得する
- 指定したアドレスにある命令の長さを取得する
インストール
注記: このプラグインは IDA Pro バージョン 9.0 以降向けに設計され、同バージョンでテストされています。
- Python と関連する依存関係がインストールされていることを確認します。
pip install -r requirements.txt
ida-mcp-server.pyファイルを IDA Pro のプラグインディレクトリにコピーします。- Windows:
%Programfiles%\IDA Pro 9.0\plugins\ - Linux:
~/.idapro/plugins/ - macOS:
~/Library/Application Support/IDA Pro/plugins/
- Windows:
Claude/VSCode の設定
Claude または VSCode の mcp.json ファイルに、次の設定を追加します。
{
"mcpServers": {
"IDAPro": {
"url": "http://127.0.0.1:3000/sse",
"type": "sse"
}
}
}
使用方法
- IDA Pro でバイナリファイルを開きます
- プラグインが自動的に読み込まれ、MCP サーバーがローカルで起動します(ポート 3000)
- AI アシスタント(例:Claude)をこのサーバーに接続します
- AI アシスタントを使ってバイナリ解析タスクを実行します
利用可能な解析ツール
IDA Pro MCP サーバーは、次のツールを提供します。
get_bytes:指定したアドレスのバイトを取得するget_disasm:指定したアドレスの逆アセンブル結果を取得するget_decompiled_func:指定したアドレスを含む関数の疑似コードを取得するget_function_name:指定したアドレスの関数名を取得するget_segments:すべてのセグメント情報を取得するget_functions:バイナリ内のすべての関数を取得するget_xrefs_to:指定したアドレスへのすべての相互参照を取得するget_imports:すべてのインポート関数を取得するget_exports:すべてのエクスポート関数を取得するget_entry_point:バイナリのエントリーポイントを取得するmake_function:指定したアドレスに関数を作成するundefine_function:指定したアドレスの関数を未定義にするget_dword_at:指定したアドレスの dword を取得するget_word_at:指定したアドレスの word を取得するget_byte_at:指定したアドレスの byte を取得するget_qword_at:指定したアドレスの qword を取得するget_float_at:指定したアドレスの float を取得するget_double_at:指定したアドレスの double を取得するget_string_at:指定したアドレスの文字列を取得するget_string_list:バイナリ内のすべての文字列を取得するget_strings:バイナリ内のすべての文字列を取得する(アドレス付き)
ベストプラクティス
バイナリファイルを解析する際は、次の手順に従うことをおすすめします。
- エントリーポイントを調べる
- インポートテーブルを解析する
- 文字列を確認する
- 主要な API 呼び出しを追跡する
- 主な機能ブロックを特定する
- 制御フローを解析する
- 悪意のある動作を特定する
- アルゴリズムと暗号化ルーチンを解析する
- 解析結果を記録する
- 高度な手法を使用する
ライセンス
MIT License
Copyright (c) 2023
本ソフトウェアおよび関連文書ファイル(以下「本ソフトウェア」)の複製を取得するすべての人に対し、無償で、本ソフトウェアを制限なく取り扱うことを許可します。これには、本ソフトウェアを使用、複製、変更、結合、公開、配布、サブライセンス、および販売する権利が含まれます。また、本ソフトウェアを提供された人に同じ権利を許可することも認められます。ただし、以下の条件に従うものとします。
上記の著作権表示および本許諾表示は、本ソフトウェアのすべての複製または実質的な部分に含めるものとします。
本ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、いかなる保証もありません。これには、商品性、特定目的への適合性、および権利非侵害の保証が含まれますが、これらに限定されません。作者または著作権者は、契約、不法行為、その他の行為のいずれによるかを問わず、本ソフトウェアまたは本ソフトウェアの使用その他の取引に起因または関連して生じるいかなる請求、損害、その他の責任についても責任を負いません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
