Ghidra逆工
一个MCP服务器,允许大型语言模型通过暴露Ghidra功能来自主逆向工程应用程序,实现反编译、分析以及方法和数据的自动重命名。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"ghidra": {
"args": [
"/ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py",
"http://127.0.0.1:8080/"
],
"command": "python"
}
}
}
服务介绍
ghidraMCP
ghidraMCP 是一个模型上下文协议(Model Context Protocol, MCP)服务器,允许大型语言模型(LLMs)自主逆向工程应用程序。它将Ghidra核心功能中的多种工具暴露给MCP客户端。
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
功能
MCP 服务器 + Ghidra 插件
- 在Ghidra中反编译和分析二进制文件
- 自动重命名方法和数据
- 列出方法、类、导入和导出
安装
前提条件
Ghidra
首先,从本仓库下载最新的发行版。这包含了Ghidra插件和Python MCP客户端。然后,你可以直接将插件导入到Ghidra中。
- 运行Ghidra
- 选择
文件->安装扩展 - 点击
+按钮 - 从下载的发行版中选择
GhidraMCP-1-1.zip(或你选择的版本) - 重启Ghidra
- 确保在
文件->配置->开发者中启用了GhidraMCPPlugin - 可选:通过
编辑->工具选项->GhidraMCP HTTP 服务器配置Ghidra中的端口
视频安装指南:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
MCP 客户端
理论上,任何MCP客户端都应能与ghidraMCP一起工作。下面给出了两个示例。
示例 1: Claude Desktop
要设置Claude Desktop作为Ghidra MCP客户端,请转至 Claude -> 设置 -> 开发者 -> 编辑配置 -> claude_desktop_config.json 并添加以下内容:
{
"mcpServers": {
"ghidra": {
"command": "python",
"args": [
"/ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py",
"http://127.0.0.1:8080/"
]
}
}
}
或者直接编辑此文件:
/Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json
服务器IP和端口是可配置的,应指向目标Ghidra实例。如果不设置,默认为localhost:8080。
示例 2: 5ire
另一个支持后端多个模型的MCP客户端是 5ire。要设置GhidraMCP,请打开5ire并转至 工具 -> 新建 并设置以下配置:
- 工具密钥: ghidra
- 名称: GhidraMCP
- 命令:
python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py
从源码构建
使用Maven构建,运行命令:
mvn clean package assembly:single
生成的 zip 文件包含了构建好的 Ghidra 插件及其资源。这些文件是 Ghidra 识别新扩展所必需的。
- lib/GhidraMCP.jar
- extensions.properties
- Module.manifest