Ghidra MCPとVSCodeのGithub Copilotを連携する
こんにちは。konekotechです。
GhidraMCPというGhidraの拡張機能を使うと、Ghidraのコード解析にAIを活用できます。さらに、VSCodeのGithub Copilotと連携することで、解析やGhidra Scriptの作成を効率化できます。
今回は、Ghidra MCPとVSCodeのGitHub Copilotを連携する方法を紹介します。
なお、この記事は私が作成したGhidra MCPとVSCodeのGitHub Copilotを連携するための拡張機能「Ghidra MCP Bridge」を使って説明します。
Ghidraのインストール
Ghidraを適当にインストールします。ここは省略します。
Ghidra MCPのインストール
Ghidra MCPのリポジトリのreleasesから、最新のリリースをダウンロードします。
ダウンロードしたzipを解答し、中にある「'GhidraMCP-x-x.zip
」をGhidraに読み込ませます(この手順も省略します)。また、bridge_mcp_ghidra.py
を適切な場所で保存します。
uvのインストール
普通にPythonを入れても動きますが、uv使ったほうが楽なので、uvをインストールします。uvの公式サイトからインストール方法を確認し、適切な方法でインストールしてください。
Ghidra MCP Bridgeでは、uvを使ってMCPサーバを起動します(uvさえ入れておけばあとは勝手にやってくれる、はず)。
Ghidra MCP Bridgeのインストール
VSCodeの拡張機能「Ghidra MCP Bridge」をインストールします。
Ghidra MCP Bridgeの設定
VSCodeの設定を開き、「ghidraMCP」と検索します。「Bridge Script Path」という項目に、さきほどのbridge_mcp_ghidra.py
のパスを設定します。
MCPサーバをVSCodeに認識させる
mcp.json
に、以下を追記します。
mcp.json
は、settings.json
と同じディレクトリに作成するか、プロジェクトの.vscode
ディレクトリに作成します。
{
"servers": {
"ghidra": {
"type": "http",
"url": "http://127.0.0.1:8081/sse"
}
}
}
MCPサーバを起動する
Ghidraを起動し、適当なバイナリを開きます。以下の手順で、MCPサーバを起動します。
- VSCodeのコマンドパレットを開き、「Start Ghidra MCP Server」を選択します。
- 「Ghidra MCP server started」というポップアップが出てきたら、MCPサーバが起動しています。この時点で、
http://127.0.0.1:8081/sse
にアクセスすると、MCPサーバが起動していることを確認できます。
MCPサーバをVSCode(GitHub Copilot)で使う
Agentモードに切り替えて、例えば以下のようなプロンプトを実行してみてください。MCPサーバに接続して、Ghidraの関数情報を取得してくれる(はず)です。
FUN_004012c0について、Ghidraから直接情報を取得して教えてください。
MCPサーバをVSCode(Cline)で使う
オリジナルのGhidra MCPのリポジトリの説明のRemote Serversの項目通りにURLを入力すれば、ClineでもMCPサーバを使うことができます。
Discussion