Ghidra MCP分析师🕵️♂️
自主的 恶意软件分析代理 由 模型上下文协议(MCP).
这个工具弥合了两者之间的差距 克劳德(法学硕士) 和 Ghidra无头分析仪它允许您将二进制文件拖放到Claude Desktop中,并使用自然语言执行复杂的逆向工程任务——列出函数、反编译代码和提取字符串——所有这些都不需要打开Ghidra GUI。
🚀 特性
- 自动反编译: 按需从函数中提取C代码。
- 智能缓存: 分析二进制文件一次,并缓存结果以供即时后续查询。
- 便携式日志记录: 自动将分析工件(JSON)保存到内部
analysis_output文件夹。 - 无需GUI: 使用Ghidra的自动化脚本完全无头运行。
______________________________________________________________________
🛠️ 先决条件
在运行此服务器之前,请确保已安装以下内容:
- Python 3.10+
- 吉德拉 (版本10.x或11.x)
- *注意:确保您可以手动运行Ghidra至少一次以验证JDK设置。*
- Claude桌面应用程序 (或任何其他符合MCP的客户端)
______________________________________________________________________
📦 安装
1.克隆存储库
git clone https://github.com/QuiteArpit/HeadlessGhidraMCP.git
cd HeadlessGhidraMCP2.安装依赖项
pip install mcp3.配置Ghidra路径(关键步骤!)
您需要告诉脚本Ghidra安装的位置。
选项A: *使用环境变量(推荐)*
设置GHIDRA_HEADLESS_PATH变量以指向您的analyzeHeadless可执行文件。
- Windows(PowerShell):
$env:GHIDRA_HEADLESS_PATH = "C:\Path\To\Ghidra\support\analyzeHeadless.bat"- Mac/Linux:
export GHIDRA_HEADLESS_PATH="/Path/To/Ghidra/support/analyzeHeadless"选项B: *快速编辑*
或者,您可以在文本编辑器中打开ghidra_mcp.py,并在第28行手动设置回退路径:
# ghidra_mcp.py
GHIDRA_HEADLESS_PATH = os.getenv("GHIDRA_HEADLESS_PATH", r"C:\Your\Actual\Path\support\analyzeHeadless.bat")______________________________________________________________________
🔌 连接到克劳德桌面
要在Claude中使用此工具,您必须将其添加到Claude Desktop配置文件中。
1.找到配置文件:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - 雨衣:
~/Library/Application Support/Claude/claude_desktop_config.json
2.添加服务器配置:
打开文件并添加以下JSON。 确保更新克隆此仓库的绝对路径。
{
"mcpServers": {
"ghidra-analyst": {
"command": "python",
"args": [
"C:\\Users\\YOUR_USER\\Documents\\GitHub\\ghidra-mcp-analyst\\ghidra_mcp.py"
]
}
}
}*(注意:在Windows上,记得在路径中使用双反斜杠\\。)*
3.重新启动克劳德桌面:
你应该看到一个🔌 插头图标或活动连接器出现在输入栏中,表示该工具处于活动状态。
______________________________________________________________________
🧪 如何测试
- 找到 样品 此存储库中的文件夹(或使用您拥有的任何二进制文件)。
- 我们将使用
program.exe作为测试对象。 - 打开Claude并键入以下提示:
I have a binary located at C:\Users\YOUR_USER\...\Sample\program.exe. Please analyze it. List the functions found, identify the main entry point, and then decompile the main function to explain what it does.接下来会发生什么:
- 克劳德将请求允许逃跑
analyze_binary。单击“允许”。 - 等待10-20秒,让Ghidra在后台运行。
- 克劳德将收到分析数据并回答您的问题。
- JSON日志文件将在
analysis_output/此项目的文件夹供您参考。
______________________________________________________________________
📂 项目结构
ghidra_mcp.py:主MCP服务器脚本。GhidraScripts/:包含在Ghidra内部运行的Java脚本(GhidraDataDump.Java)。analysis_output/:(在运行时创建)存储JSON分析结果。Sample/:包含用于测试的虚拟二进制文件。
______________________________________________________________________
⚠️ 故障排除
- 错误:
The system cannot find the file specified:
- 你的 GHIDRA_HEADLESS_PATH 不正确。确保它指向 .bat Windows上的文件。
- 错误:
JAVA_HOME not found:
- 确保Ghidra正常工作。您可能需要将JDK安装添加到系统PATH中。
