Repolode
bethington

bethington/ghidra-mcp

AIアシスタントからGhidraを操作し、バイナリを分析できるMCPサーバー。逆コンパイル、リネーム、注釈付けなど200以上のツールを提供。

スター
5,821
フォーク
347
未解決の Issue
33
最終コミット
5 日前

これは何?

GhidraMCPは、Ghidraのリバースエンジニアリング機能をAIアシスタントや自動化ツールに接続するMCPサーバーです。逆コンパイル、コールグラフ、クロスリファレンス、データ型や構造体、文字列やインポートの分析に加え、リネーム、型の設定、コメントの追加といった書き込み操作をカバーする200以上のツールを提供します。Ghidra GUI内のプラグインとしても、スクリプト実行やDockerを使った分析に適したヘッドレスサーバーとしても動作します。

静的解析に加えて、個々の関数のP-codeエミュレーション、GhidraのTraceRmiフレームワークを利用したライブデバッガ連携、指定した変数やレジスタからのP-codeデータフロートレースにも対応しています。ハッシュベースの関数マッチングにより、あるバイナリのバージョンから別のバージョンへドキュメントを引き継げます。MCPクライアントにツール一覧全体を一度に読み込ませないよう、ツールはデフォルトで遅延ロードされます。また、明示的に有効化しない限り、スクリプト実行は無効です。

利用にはGhidra 12.1.4とJava 21が必要です。Pythonブリッジは、リリースのwheelをuvまたはpipでインストールできます。

主な機能

  • 01逆コンパイル、クロスリファレンス、コールグラフ分析向けに200以上のMCPツールを提供します。
  • 02リネーム、型の再設定、コメント追加、構造体の作成などの書き込み操作に対応します。
  • 03Ghidra内のGUIプラグインとしても、Dockerを含むヘッドレスサーバーとしても動作します。
  • 04個々の関数のP-codeエミュレーションと、P-codeベースのデータフロートレースを提供します。
  • 05GhidraのTraceRmiフレームワークを通じてライブデバッガと連携します。
  • 06SHA-256関数ハッシュを使って、バイナリのバージョン間で関数のドキュメントを引き継ぎます。

ユースケース

  • AIアシスタントにシンボルが削除されたバイナリを調査させ、関数に名前を付けてドキュメントを作成する。
  • セッション間で一貫した命名規則を適用し、大規模なプログラムにまとめて注釈を付ける。
  • 関数ハッシュによるマッチングを使って、あるビルドでの分析作業を次のバイナリビルドに引き継ぐ。
  • GUIを使わずに、CIやDockerのパイプラインでGhidraによる分析を自動実行する。

クイックスタート

  1. 1

    前提条件をインストールします: Ghidra 12.1.4、Java 21、uv

  2. 2

    Ghidraで File > Install Extensions から GhidraMCP 拡張機能のZIPをインストールし、Ghidraを再起動します

  3. 3

    uvを使って、リリースのwheelからMCPブリッジをインストールします

    uv tool install https://github.com/bethington/ghidra-mcp/releases/download/v7.0.0/ghidra_mcp_bridge-7.0.0-py3-none-any.whl
  4. 4

    絶対パスを指定して、MCPクライアントをブリッジに接続します

使う前に知っておきたいこと

  • Ghidra拡張機能は、ビルド対象と完全に同じバージョンのGhidra(12.1.4)でのみ読み込まれます。
  • Java 21と、GhidraMCPプラグインを有効にした実行中のGhidraインスタンスが必要です。
  • mainとリリース候補版はベータ版、devは実験段階のため、ツールのインターフェースが変更される場合があります。
  • ライブデバッガー機能は、Ghidra GUIプラグイン経由でのみ使用できます。

トピック

よくある質問

ghidra-mcp とは?
AIアシスタントからGhidraを操作し、バイナリを分析できるMCPサーバー。逆コンパイル、リネーム、注釈付けなど200以上のツールを提供。 GhidraMCPは、Ghidraのリバースエンジニアリング機能をAIアシスタントや自動化ツールに接続するMCPサーバーです。逆コンパイル、コールグラフ、クロスリファレンス、データ型や構造体、文字列やインポートの分析に加え、リネーム、型の設定、コメントの追加といった書き込み操作をカバーする200以上のツールを提供します。Ghidra GUI内のプラグインとしても、スクリプト実行やDockerを使った分析に適したヘッドレスサーバーとしても動作します。
ghidra-mcp は無料で使えますか?ライセンスは?
ghidra-mcp は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ghidra-mcp は今もメンテナンスされていますか?
活発にメンテナンス中。ghidra-mcp の最終コミットは 2026年10月16日 です。
ghidra-mcp は何に使えますか?
AIアシスタントにシンボルが削除されたバイナリを調査させ、関数に名前を付けてドキュメントを作成する。 セッション間で一貫した命名規則を適用し、大規模なプログラムにまとめて注釈を付ける。 関数ハッシュによるマッチングを使って、あるビルドでの分析作業を次のバイナリビルドに引き継ぐ。 GUIを使わずに、CIやDockerのパイプラインでGhidraによる分析を自動実行する。
ghidra-mcp のインストール方法は?
前提条件をインストールします: Ghidra 12.1.4、Java 21、uv Ghidraで File > Install Extensions から GhidraMCP 拡張機能のZIPをインストールし、Ghidraを再起動します uvを使って、リリースのwheelからMCPブリッジをインストールします: uv tool install https://github.com/bethington/ghidra-mcp/releases/download/v7.0.0/ghidra_mcp_bridge-7.0.0-py3-none-any.whl 絶対パスを指定して、MCPクライアントをブリッジに接続します
ghidra-mcp はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/bethington/ghidra-mcp

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト