本项目支持借助 Ghidra 的无头模式,从二进制文件里提取丰富的反编译数据(如函数、伪代码、结构体、枚举等),并将其输出为 JSON 文件。同时,通过 Model Context Protocol (MCP) 把这些数据提供给像 Claude 这样的大语言模型。它成功将 Ghidra 转变为一个交互式的逆向工程后端。
本项目可让你使用 Ghidra 的无头模式,从二进制文件中提取反编译数据,输出到 JSON 文件,并通过 MCP 提供给大语言模型,将 Ghidra 变成交互式逆向工程后端。
ghidra_context.json
文件。list_functions()
,get_pseudocode(name)
list_structures()
,get_structure(name)
list_enums()
,get_enum(name)
list_function_definitions()
,get_function_definition(name)
mcp
CLI(通过 pip install mcp
安装)brew install --cask temurin@21
然后进行配置:
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 21)' >> ~/.zshrc
source ~/.zshrc
检查安装情况:
java -version
应该显示:openjdk 版本 "21.0.x"...
下载并解压 Ghidra 11.3.1。
安装 Python 3.10+ 并通过 pip
安装以下依赖项:
pip install mcp-server requests
属性 | 详情 |
---|---|
main.py |
MCP 服务器及其工具 |
export_context.py |
Ghidra 脚本用于提取 JSON |
crackme.c |
示例 C 二进制文件 |
crackme |
编译后的二进制文件用于测试 |