Ghidra を AI から操作する(GhidraMCP)
Ghidra 拡張+ブリッジで MCP 経由にデコンパイル・xref・名前/型/コメント編集を公開し、AI エージェントにマルウェア等の静的解析を補助させる。
何を解決するか / いつ使うか
- Ghidra で開いたバイナリに対し、関数一覧・相互参照・構造体付けをエージェントに手伝わせたいとき。
- IDA データベースを SQL/AI エージェントで解析する(IDASQL) が IDA 向けなのに対し、Ghidra ユーザー向けの同様の橋渡しが欲しいとき。
- 試験用プレリリース(例: 7.0.0-rc.2)で、編集系ツールまで含めた MCP 面を試したいとき。
手順の概要
- 配布を確認する
投稿時点で紹介された試験用プレリリースは GhidraMCP 7.0.0-rc.2(MCP ツール約 209)。メンテの中心はbethington/ghidra-mcp(旧 LaurieWired 系からの移行先)。Ghidra 本体の版と拡張 ZIP のスタンプ版が一致していないと読み込めない。 - Ghidra に拡張を入れる
File→Install Extensions→+でリリースのGhidraMCP-*.zipを選ぶ。- Ghidra を再起動し、CodeBrowser 側で GhidraMCP プラグインを有効化する。
- HTTP サーバーはプラグイン有効時に起動する(既定は localhost)。ポートは
Edit→Tool Options→GhidraMCP HTTP Serverで変更可。
- ブリッジ(MCP サーバー)を入れる
sh
uv tool install ./ghidra_mcp_bridge-7.0.0-py3-none-any.whl bridge-mcp-ghidra(
pip installの wheel、またはpython -m bridge_mcp_ghidraでも可) - MCP クライアントに登録する
Claude Code / Cursor 等の MCP 設定で、ブリッジを指す。Ghidra 側に解析対象プログラムを開いた状態で、デコンパイル結果・xref の取得に加え、名前・型・コメント付与や構造体作成などの編集をエージェントから実行できる。 - 解析の使い方の例
不審 API の呼び出し元洗い出し、文字列参照の順位付け、構造体候補の命名など。AI エージェント向け RE スキル集を入れる前に確認する(reverse-skill) と同様、隔離環境で悪性バイナリを扱う前提にする。
注意点
- プレリリースはテスト用途。本番解析フローに載せる前に、使う Ghidra 版との組み合わせと安定版の有無を確認する。
- 待ち受けは localhost 前提。エージェント接続は IDA データベースを SQL/AI エージェントで解析する(IDASQL) と同様、外部公開しない・ホスト FW で閉じる。
- AI に編集まで任せるため、注釈の誤りや過剰なリネームがあり得る。重要な結論は人手で再確認する。
- 解析対象は隔離 VM 等で扱い、ホストの本物シークレットや社内リポジトリには繋がない。