はじめに
GhidraMCPは、強力なリバースエンジニアリングソフトウェアであるGhidraと人工知能(AI)を組み合わせることを中核的な目的としたオープンソースツールです。モデルコンテキストプロトコル(MCP)プロトコルを介して大規模言語モデル(LLM)をGhidra上で直接操作できるようにすることで、バイナリファイルの解析タスクを自動化する。このツールはLaurieWiredによってGitHub上で開発され、2025年3月にリリースされた。セキュリティ研究者、プログラマー、リバースエンジニアリングに興味のあるユーザーに適している。GhidraMCPは、特にマルウェア解析や脆弱性発見などのシナリオにおいて、そうでなければ複雑な手作業による解析をより効率的にするためにここにある。
機能一覧
- 自動リバースエンジニアリング:AIによってGhidraを制御し、バイナリを自動的に解析する。
- メソッドとデータのリネーム:コード内のメソッドとデータを識別し、より読みやすい名前を自動的に生成します。
- バイナリファイルの解析:ファイルの関数、クラス、インポートおよびエクスポート情報を一覧表示します。
- マルウェア分析サポート:潜在的なセキュリティ脆弱性や悪意のある動作の特定を支援します。
- マルチサポート エムシーピー クライアント:互換性 クロード デスクトップ、5ire、その他のクライアント。
- オープンソースでカスタマイズ可能:ユーザーは必要に応じてコードを変更したり、機能を拡張することができます。
ヘルプの使用
設置プロセス
GhidraMCPは、GhidraおよびMCPクライアントで動作するために必要です。以下に詳しいインストール手順を示します:
- 環境を整える
- 米国家安全保障局(NSA)が開発したオープンソースのリバースエンジニアリングツールであるGhidraがインストールされていることを確認してください。GhidraはGhidraのウェブサイトからダウンロードできます。
- Pythonに依存するスクリプトがあるため、Python 3.8以上を推奨します。
- GhidraMCP.をGitHubリポジトリからダウンロードする 最新バージョンのZIPファイルは "Releases "をクリックしてください。
- Ghidraプラグインのインストール
- ダウンロードした GhidraMCP ZIP ファイルを解凍し、プラグインファイル(通常は
.zip
(フォーマット)。 - ギドラを開き、メニューを開く。
File -> Install Extensions
. - をクリックして解凍したプラグインファイルを選択し、確認してギドラを再起動してください。
- プラグインをインストールすると、GhidraMCPの機能は自動的にGhidraに統合されます。
- ダウンロードした GhidraMCP ZIP ファイルを解凍し、プラグインファイル(通常は
- MCPクライアントの設定
GhidraMCPはAIに接続するためにMCPクライアントを必要とする。以下はClaude Desktopと5ireの例である:- クロードデスクトップの構成
- クロードデスクトップを開き
Settings -> Developer -> Edit Config
. - 設定ファイルの編集
claude_desktop_config.json
以下を追加する:{ "mcpServers": { "ghidra": { "command": "python", "args": ["/你的绝对路径/bridge_mcp_ghidra.py"] } } }
- セキュア
bridge_mcp_ghidra.py
ファイルパスは正しく、このファイルはGhidraMCPダウンロードパッケージの中にあります。
- クロードデスクトップを開き
- 5線式構成
- 5ireを開き
Tools -> New
. - 設定にGhidraMCPのパスとパラメータを入力し、設定を保存します。
- 5ireを開き
- 設定が完了したら、クライアントを起動し、AIはMCPプロトコルでGhidraと通信できるようになる。
- クロードデスクトップの構成
- インストールの確認
- ギドラを開き、バイナリファイル(例えば
.exe
もしかしたら.bin
). - MCPクライアントにコマンドを入力する。例えば、「このファイルの全機能を分析する」。結果が正常であれば、インストールは成功です。
- ギドラを開き、バイナリファイル(例えば
主な機能
- バイナリファイルの自動解析
- ギドラで対象ファイルを開いた後、MCPクライアントに切り替える。
- すべての関数をリストアップし、名前を変更する」といった自然言語コマンドを入力すると、AIが自動的にギドラの関数を呼び出し、ファイルを解析して結果を返す。
- 結果はクライアント・インターフェイスに表示され、通常、関数のリストと自動的に生成された新しい名前が含まれる。
- メソッドとデータの名前の変更
- クライアント側で "rename all unnamed functions "と入力すると、AIが文脈からその関数の用途を推測し、より直感的な名前を付けてくれる。
- 手動での調整が必要な場合は、リネームされた結果がギドラのコードビューに同期される。
- マルウェア解析
- マルウェアサンプルをロードした後、「潜在的な脆弱性をチェックする」または「悪意のある動作を見つける」を入力する。
- AIは、ファイルのインポート・テーブル、文字列、呼び出し関係をスキャンし、疑わしいネットワーク要求やファイル操作など、セキュリティ上の問題の可能性を返す。
ワークフロー
- ギドラとMCPクライアントを起動する。
- Ghidraでバイナリファイルをインポートし、"Analyze "をクリックすると最初の解析が始まる。
- MCPクライアントに切り替え、"extract all strings "や "analyse function calls "などのanalyseコマンドを入力する。
- 返された結果を表示し、必要に応じて指示を調整するか、手動で詳細を確認します。
- 解析結果を保存し、プロジェクトファイルにエクスポートすることができます。
ほら
- ネットワークがオープンであることを確認する。いくつかのAIモデルはオンラインで呼び出す必要がある。
- エラーが発生した場合は
bridge_mcp_ghidra.py
またはGitHubのIssuesページを参照してください。 - 大きなファイルの場合、分析に時間がかかることがありますので、最初に小さなサンプルをテストすることをお勧めします。
アプリケーションシナリオ
- マルウェア研究
セキュリティ研究者は、GhidraMCPを使ってウイルスやトロイの木馬を素早く分析し、悪意のあるコードの実行ロジックや隠れた機能を見つけることができる。 - ソフトウェア脆弱性マイニング
開発者はこれを使って、バッファオーバーフローや不正アクセスなどの潜在的なセキュリティホールがないか、バイナリを検査することができる。 - リバースエンジニアリングを学ぶ
初心者の方でも、AIのアシストによりバイナリファイルの構造と機能を素早く理解することができ、学習の敷居を下げることができます。
品質保証
- GhidraMCPはどのOSに対応していますか?
Windows、Mac、Linuxなど、ギドラがサポートするすべてのシステムと互換性がある。 - プログラミングの経験が必要ですか?
必須ではありません。インストールと基本的な使い方はステップ・バイ・ステップです。ただし、機能をカスタマイズしたい場合は、JavaやPythonの知識があると有利です。 - オフラインで使用できますか?
そうだが、一部のAIモデルはネットワークに接続する必要がある。ローカルモデルを使えば、完全にオフラインで動かすことができる。