内容
# Ghidra 与 IDA Pro 的模型上下文协议(MCP)服务器
一款自定义的模型上下文协议(MCP)服务器,与 **Ghidra** 和 **IDA Pro** 接口,为 AI 编程助手(如 Cursor、Claude Desktop 和 Antigravity IDE)提供交互式反编译、拆卸和二进制分析功能。
## 架构
传统的无头分析执行速度太慢,无法在每次查询时实时执行。该服务器使用 **基于两阶段缓存的架构**:
1. **预分析阶段**:在目标二进制文件上以无头模式运行 Ghidra 或 IDA Pro *一次*,将所有函数、反编译的伪代码和汇编列表导出到本地 JSON 数据库(`ghidra_analysis.json` 或 `ida_analysis.json`)。
2. **即时查询阶段**:MCP 服务器通过读取预生成的数据库文件,立即处理客户端请求(JSON-RPC)。
---
## 公开的 MCP 工具
服务器公开以下 JSON-RPC 命令:
* `analyze_with_ghidra`:使用 Ghidra 触发目标二进制文件的无头分析,并构建本地函数缓存。
* `analyze_with_ida`:使用 IDA Pro 触发目标二进制文件的无头分析,并构建本地函数缓存。
* `list_functions`:立即列出数据库中找到的所有函数。
* `decompile_function`:检索函数的反编译 C 伪代码。
* `disassemble_function`:检索函数的汇编指令。
---
## 入门指南
### 1. 先决条件
* Python 3.11+
* **Ghidra**(带有 `analyzeHeadless` 实用程序)或 **IDA Pro**(带有 Hex-Rays 反编译器和 `idat` 实用程序)。
* Ghidra 需要在系统上配置 Java JDK。
### 2. 配置路径
编辑 `mcp_server.py` 顶部的路径变量,以匹配系统上的安装位置:
```python
GHIDRA_HEADLESS = r"C:\path\to\ghidra\support\analyzeHeadless.bat"
IDA_EXECUTABLE = r"C:\path\to\IDA\idat.exe"
```
### 3. 验证
运行验证脚本以模拟 JSON-RPC 接口并验证正确设置:
```bash
python verify_mcp.py
```
---
## IDE 集成配置
要将此 MCP 服务器与您的 AI 助手集成,请将其添加到您的配置中(例如,在 Claude Desktop 的 `claude_desktop_config.json` 中,或在 IDE 的自定义 MCP 设置中):
```json
{
"mcpServers": {
"antigravity-re": {
"command": "python",
"args": ["C:/path/to/your/desktop/mcp-reverse-engineering/mcp_server.py"]
}
}
}
```
---
## 许可证
该项目是开源的,基于 [MIT License](LICENSE) 可用。