mcpField
G
ghidraMCP

ghidraMCP

ローカル
github.com/LaurieWiredセキュリティ11.6k3 週間前に更新

ghidraMCP について

ghidraMCP は、LLM が Ghidra を使ってアプリケーションをリバースエンジニアリングできるようにする MCP サーバーです。Ghidra プラグインと Python 製の MCP クライアントで構成され、リバースエンジニアリングやセキュリティ研究を行う人を対象としています。

主な機能

  1. 01Ghidra 内でのバイナリの逆コンパイルと解析
  2. 02メソッドやデータの自動リネーム
  3. 03メソッド、クラス、インポート、エクスポートの一覧表示
  4. 04Ghidra GUI を使わないヘッドレス解析モード

活用シーン

  1. 01LLM によるクローズドソースのバイナリ解析の支援
  2. 02MCP クライアントからの Ghidra の逆コンパイル結果とシンボル情報の参照

MCP 対応

ghidraMCP は MCP サーバーとして動作し、Ghidra の中核機能をツールとして MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

ライセンス GitHub の最新リリース GitHub のスター数 GitHub のフォーク数 GitHub のコントリビューター数 @lauriewired をフォロー

ghidra_MCP_logo

ghidraMCP

ghidraMCP は、LLM がアプリケーションを自律的にリバースエンジニアリングできるようにする Model Context Protocol サーバーです。Ghidra のコア機能から多数のツールを MCP クライアントに提供します。

https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9

機能

MCP サーバー + Ghidra プラグイン

  • Ghidra でバイナリを逆コンパイルして分析します
  • メソッドとデータの名前を自動的に変更します
  • メソッド、クラス、インポート、エクスポートを一覧表示します

インストール

前提条件

  • Ghidra 12.1.4 をインストールします
  • uv をインストールします(または Python 3.10 以降で pip install git+https://github.com/LaurieWired/GhidraMCP を実行し、以下のコマンドとして ghidra-mcp を使用します)

Ghidra

まず、このリポジトリから最新のリリースをダウンロードします。これには Ghidra プラグインと Python MCP クライアントが含まれています。その後、プラグインを Ghidra に直接インポートできます。

  1. Ghidra を起動します
  2. File -> Install Extensions を選択します
  3. + ボタンをクリックします
  4. ダウンロードしたリリースから ghidra_12.1.4_PUBLIC_<date>_GhidraMCP.zip を選択します
  5. Ghidra を再起動します
  6. File -> Configure -> Developer で GhidraMCPPlugin が有効になっていることを確認します
  7. 任意: Edit -> Tool Options -> GhidraMCP HTTP Server から Ghidra のポートを設定します

インストール手順の動画:

https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3

MCP クライアント

理論上、どの MCP クライアントでも ghidraMCP を使用できます。ほとんどのクライアントは、次のような JSON 設定を受け付けます。

{
  "mcpServers": {
    "ghidra": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/LaurieWired/GhidraMCP",
        "ghidra-mcp",
        "--ghidra-server",
        "http://127.0.0.1:8080/"
      ]
    }
  }
}

サーバーの IP とポートは設定可能で、対象の Ghidra インスタンスを指すように設定します。設定しない場合、どちらもデフォルトで localhost:8080 になります。

コマンドを起動する代わりに URL に接続するクライアントでは、まず MCP サーバーを自分で起動します。

uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --transport streamable-http --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/

次に、クライアントで http://127.0.0.1:8081/mcp をリモートサーバーとして追加します。

例 1:VS Code

コマンドパレットから MCP: Add Server を実行するか、ワークスペースの .vscode/mcp.json に次の内容を追加します。

{
  "servers": {
    "ghidra": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/LaurieWired/GhidraMCP",
        "ghidra-mcp",
        "--ghidra-server",
        "http://127.0.0.1:8080/"
      ]
    }
  }
}

例 2:Claude Code

次のコマンドを実行します。

claude mcp add ghidra -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/

ヘッドレス(Ghidra GUI なし)

ghidra-mcp は PyGhidra を使って、Ghidra GUI を起動せずにバイナリをインポートして分析することもできます。Python 3.10~3.13、Ghidra に GhidraMCP 拡張機能をインストールしていること(または --extension-jar /path/to/GhidraMCP.jar)、および GHIDRA_INSTALL_DIR が Ghidra 12.1.4 のディレクトリに設定されていることが必要です。

uvx --python 3.13 --from "ghidra-mcp[headless] @ git+https://github.com/LaurieWired/GhidraMCP" ghidra-mcp --headless --binary /path/to/target

上記のクライアント設定と同じコマンドと引数を使用します。実行間で Ghidra プロジェクトを保持し(変更を保存する)には、--project DIR を追加します。macOS では、Ghidra のディレクトリから support/gradle/gradlew buildNatives を実行して、Ghidra のデコンパイラーを一度ビルドしてください。

ソースからビルドする

  1. GHIDRA_INSTALL_DIR に Ghidra 12.1.4 のディレクトリを設定します
  2. 次のコマンドを実行して、Gradle(Java 21)で拡張機能をビルドします。

cd extension && $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension

生成された extension/dist/ 内の zip ファイルには、ビルド済みの Ghidra プラグインとそのリソースが含まれます。Ghidra が新しい拡張機能を認識するには、次のファイルが必要です。

  • lib/GhidraMCP.jar
  • extension.properties
  • Module.manifest

Python MCP サーバーは、チェックアウトしたディレクトリから uv run ghidra-mcp で実行でき、uv run pytest でテストできます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。