🐉

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サーバを起動します。

  1. VSCodeのコマンドパレットを開き、「Start Ghidra MCP Server」を選択します。
  2. 「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