bethington/ghidra-mcp
Ghidra MCP Server — 200+ MCP tools for AI-powered reverse engineering. GUI plugin + headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.
Ghidra MCP Server – 何がそれか
Ghidra MCP は、Model Context Protocol (MCP) を通じて Ghidra のリバースエンジニアリングエンジンを公開するプロダクション対応のサーバーです。実際には、外部プログラム(AIエージェント、CIパイプライン、カスタムスクリプトなど)が豊富で型安全なAPIを通じて、Ghidraインストール(GUIおよびヘッドレス)を制御できるようにします。
なぜ重要なのか
- フル機能API – 253のMCP「ツール」がGhidraが行えるすべての操作をカバー:シンボルの読み書き、構造体の作成、デコンパイルの実行、P-codeエミュレーション、ライブデバッガーの接続、Ghidra Serverプロジェクトの管理など。
- AIフレンドリー – サーバーは命名規則とスコアリングロジックを強制するため、大規模言語モデルアシスタントがスタイルガイドをプロンプトに埋め込まずとも、一貫性がありスタイルに準拠した出力を生成できます。
- プロダクションレベル – 原子的トランザクション、バッチ操作(API呼び出しを約90%削減)、設定可能なタイムアウト、スムーズなエラーハンドリングにより、自動化パイプラインに安全に使用可能です。
- バイナリ間ドキュメント共有 – 関数はSHA-256ハッシュで識別され、一度書かれたドキュメントは同じバイナリの新しいバージョンに自動的に伝搬されます。
- ヘッドレス & Docker対応 – Ghidra GUIなしで実行可能であり、CI/CD、クラウドサービス、大規模バッチ分析に適しています。
コア機能(READMEに記載)
| カテゴリ | ハイライト |
|---|---|
| MCP統合 | 完全なModel Context Protocol実装;253ツール;原子的トランザクション;バッチモード;リアルタイム分析。 |
| 静的バイナリ解析 | デコンパイル、コールグラフ、クロスリファレンス、完全性スコアリング、データフロー(P-codeグラフ)解析、構造体/列挙型の発見、文字列抽出、インポート/エクスポートの検査、生のメモリ読み取り。 |
| 動的解析(v5.4.0) | GhidraのEmulatorHelperによるP-codeエミュレーション;ライブデバッガーブリッジ(17 Java + 22 Pythonエンドポイント);Windows(dbgeng)およびUnix(gdb/lldb)デバッガーをサポート;ブレークポイント、レジスタ/メモリアクセス、ASLR対応アドレス変換。 |
| AI駆動ワークフロー | 複数ステップ関数ドキュメントパイプライン(ハンガリアン表記、型監査、検証スコアリング)、並列バッチドキュメント、孤立コード発見、体系的な構造発見、バージョン間ハッシュマッチング。 |
| 自動化 & DevOps | Ghidraスクリプトの管理、複数プログラム処理、一括リネーム/コメント/型指定、ヘッドレスサーバーモード、Ghidra Serverプロジェクト/バージョン管理、プログラム的アナライザー制御。 |
| 規則強制 | 命名、型、その他の規則に対する階層的ルールシステム(自動修正、警告、拒否)—人間チームとAIエージェントの両方に有用。 |
クイックスタート
- 前提条件 – Java 21、Maven 3.9+、Ghidra 12.1.2、Python 3.10+(uv推奨)。OSに応じたシステムパッケージをインストール(Ubuntu/Debian、macOS Homebrew、Arch AURパッケージはすべてドキュメント化済み)。
- クローン & プレフライト
git clone https://github.com/bethington/ghidra-mcp.git && cd ghidra-mcp python -m tools.setup preflight --ghidra-path <path‑to‑ghidra> - ビルド & デプロイ –
tools.setupヘルパーはGhidra JARをローカルMavenリポジトリにインストールし、拡張機能をビルドし、GhidraのExtensions/フォルダにコピーします。python -m tools.setup ensure-prereqs --ghidra-path <path> python -m tools.setup build python -m tools.setup deploy --ghidra-path <path> - ブリッジの実行 – サーバーは3つのトランスポートオプションで起動できます:
- stdio(デフォルト) – AIツールがJSONをstdin/stdoutでパイプするのに最適。
- streamable‑http – Webクライアントやブラウザ向けの軽量HTTPエンドポイント(
/mcp)。 - sse – 非推奨の古いストリーミングモード。
uv run bridge-mcp-ghidra # stdio uv run bridge-mcp-ghidra --transport streamable-http --mcp-port 8081 - クライアントの設定 – MCP対応クライアント(例:Claude Code、Autohand Code、オープンソースのMCP Inspector)に、stdioコマンドまたはHTTP URLを指定してサーバーを追加します。
一般的な利用例
- 自動リバースエンジニアリングパイプライン – バイナリを読み込み、ドキュメントワークフローを実行し、構造化JSONを出力するCIジョブ。
- AI支援コード理解 – 大規模言語モデルエージェントがデコンパイル、データフロー、リネーム提案をサーバーに問い合わせ、一貫性のあるコメントを書き戻す。
- ライブデバッグ支援 – AIアシスタントがデバッガーブリッジ経由で実行中のプロセスに接続し、コードをステップ実行し、リアルタイムでP-code状態を照会。
- バージョン間知識共有 – ハッシュベースのドキュメント伝搬により、同じ製品の複数リリース間でコメントを同期可能。
プロジェクトの健全性指標(シールドから)
- テスト – プッシュ毎にCIが実行。
- リリース – バージョン付きリリースが公開。
- OpenSSF Scorecard – セキュリティ監査スコアは公開。
- アクティブなコミュニティ – 討論、イシュートラッカー、スポンサーシップオプションあり。
要するに: ghidra‑mcp は、Ghidraをプログラム可能なAIフレンドリーなサービスに変える、実在し、積極的にメンテナンスされているブリッジです。AI補完リバースエンジニアリングと自動バイナリ解析のフロンティアテクノロジー領域に位置しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト