GhidraMCP 是一个用于 Ghidra 的 Model Context Protocol(MCP)服务器,旨在让大语言模型(LLM)能够自主地对应用程序进行逆向工程。它通过 Ghidra 插件和 Python MCP 客户端,将 Ghidra 的核心功能暴露给 MCP 客户端。
用途:GhidraMCP 主要用于自动化逆向工程任务,例如反编译和分析二进制文件、自动重命名方法和数据,以及列出方法、类、导入和导出。它允许 LLM 通过 MCP 协议与 Ghidra 交互,从而在无需人工干预的情况下执行复杂的逆向工程操作。
主要能力:
- 在 Ghidra 中反编译和分析二进制文件。
- 自动重命名方法和数据。
- 列出方法、类、导入和导出。
- 支持无头模式(无需 Ghidra GUI),通过 PyGhidra 导入和分析二进制文件。
使用方式:
- 安装 Ghidra 12.1.4。
- 安装 uv(或 Python 3.10+,并使用 pip install git+https://github.com/LaurieWired/GhidraMCP)。
- 从该仓库下载最新发布包,其中包含 Ghidra 插件和 Python MCP 客户端。将插件导入 Ghidra:选择 File -> Install Extensions,点击 + 按钮,选择下载的 ghidra_12.1.4_PUBLIC_<date>_GhidraMCP.zip,确保在 File -> Configure -> Developer 中启用 GhidraMCPPlugin。
- 可选:在 Ghidra 中通过 Edit -> Tool Options -> GhidraMCP HTTP Server 配置端口。
- 配置 MCP 客户端:大多数客户端接受 JSON 配置,服务器 IP 和端口可配置,默认指向 localhost:8080。对于通过 URL 连接的客户端,先自行运行 MCP 服务器,然后添加 http://127.0.0.1:8081/mcp 作为远程服务器。
- 示例配置:VS Code 中通过命令面板运行 MCP: Add Server,或在 .vscode/mcp.json 中添加配置;Claude Code 中运行相应命令。
- 无头模式: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 目录。可在客户端配置中使用相同命令和参数。添加 --project DIR 以保留项目。在 macOS 上,需从 Ghidra 目录运行 support/gradle/gradlew buildNatives 构建反编译器。
从源码构建:
- 设置 GHIDRA_INSTALL_DIR 为 Ghidra 12.1.4 目录。
- 使用 Gradle(Java 21)构建扩展:cd extension && $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension。
- 生成的 zip 文件在 extension/dist/ 中,包含构建的 Ghidra 插件及其资源。
- Python MCP 服务器可通过 uv run ghidra-mcp 运行,并使用 uv run pytest 测试。
适用场景:适用于安全研究、恶意软件分析、漏洞挖掘等需要逆向工程二进制文件的领域,尤其适合希望利用 LLM 自动化分析流程的团队或个人。
限制:依赖 Ghidra 12.1.4 和 Python 3.10+ 环境;无头模式需要额外配置 PyGhidra 和 GHIDRA_INSTALL_DIR;macOS 上需构建原生反编译器。具体功能细节、收费情况、价格、平台兼容性等未在资料中提供。