
ghidraMCP 是一个 Model Context Protocol 服务器,允许 LLM 自主地对应用程序进行逆向工程。它向 MCP 客户端暴露了 Ghidra 核心功能中的众多工具。
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
MCP 服务器 + Ghidra 插件
pip install git+https://github.com/LaurieWired/GhidraMCP,然后使用下面的 ghidra-mcp 命令)首先,从本仓库下载最新的 release。其中包含 Ghidra 插件和 Python MCP 客户端。然后,你可以直接将插件导入 Ghidra。
File -> Install Extensions+ 按钮ghidra_12.1.4_PUBLIC_<date>_GhidraMCP.zipFile -> Configure -> Developer 中启用了 GhidraMCPPluginEdit -> Tool Options -> GhidraMCP HTTP Server 配置端口视频安装指南:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
理论上,任何 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 作为远程服务器。
从命令面板运行 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/"
]
}
}
}
运行以下命令:
claude mcp add ghidra -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/
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
在上述任何客户端配置中使用相同的命令和参数。添加 --project DIR 以在多次运行之间保留 Ghidra 项目(并保存更改)。在 macOS 上,从 Ghidra 目录使用 support/gradle/gradlew buildNatives 构建一次 Ghidra 的反编译器。
GHIDRA_INSTALL_DIR 设置为你的 Ghidra 12.1.4 目录cd extension && $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension
extension/dist/ 中生成的 zip 文件包含构建好的 Ghidra 插件及其资源。这些文件是 Ghidra 识别新扩展所必需的。
Python MCP 服务器可以从检出目录使用 uv run ghidra-mcp 运行,并使用 uv run pytest 进行测试。