更好的吉德拉·麦克普
Ghidra插件,将Ghidra API公开为MCP(模型上下文协议)服务器。这使得像Claude这样的人工智能助手可以直接与Ghidra交互,完成逆向工程任务,而不需要网桥或代理。
特性
- 原生MCP协议(基于HTTP的JSON-RPC 2.0)——直接连接,无需Python桥
- 160多种工具,涵盖函数、数据类型、符号、内存、脚本和分析
- 分解和反汇编函数
- 重命名函数、变量和标签
- 创建和修改结构、枚举、联合、类型定义
- 交叉参考分析
- 运行Ghidra脚本(从文件或内联Java)
- 多程序支持
需求
- Ghidra 11.0+(用12.0.2测试)
- JDK 17+
构建
export GHIDRA_INSTALL_DIR=/path/to/ghidra
./build.sh安装
将JAR复制到您的Ghidra扩展中:
mkdir -p ~/.ghidra/.ghidra_$(basename $GHIDRA_INSTALL_DIR)/Extensions/GhidraMCP/lib
cp extension.properties ~/.ghidra/.ghidra_$(basename $GHIDRA_INSTALL_DIR)/Extensions/GhidraMCP/
cp build/GhidraMCP.jar ~/.ghidra/.ghidra_$(basename $GHIDRA_INSTALL_DIR)/Extensions/GhidraMCP/lib/或者使用安装脚本:
./install.sh然后重新启动Ghidra。 在“扩展”>“杂项”下激活它。该插件在端口上启动HTTP服务器 8089.
配置Claude代码
添加到您的 .mcp.json:
{
"mcpServers": {
"ghidra-mcp": {
"type": "http",
"url": "http://127.0.0.1:8089/mcp"
}
}
}建筑
src/main/java/ghidramcp/
├── GhidraMCPPlugin.java # Plugin entry point, starts HTTP server
├── mcp/
│ └── McpServer.java # MCP protocol handler (JSON-RPC 2.0)
└── tools/
├── ToolHelper.java # Shared utilities (address parsing, etc.)
├── FunctionTools.java # Decompile, rename, call graphs, comments
├── DataTypeTools.java # Structs, enums, unions, type management
├── SymbolTools.java # Labels, xrefs, imports, exports, strings
├── MemoryTools.java # Memory reads, hex dumps
├── ProgramTools.java # Program info, open/switch/save programs
├── AnalysisTools.java # Auto-analysis, malware detection
└── ScriptTools.java # Run Ghidra scripts (file or inline)该插件在单一平台上使用MCP Streamable HTTP传输 /mcp 终点。除了Ghidra捆绑包(Gson)之外,没有外部依赖。
许可证
麻省理工学院
