基本能力
产品定位
Ghidra MCP Zig Plugin 是一个用于增强 Ghidra 程序分析能力的插件,通过集成 Zig 和 Go 技术栈,提供高效、安全的程序分析工具。
核心功能
- JNI 实现的 Ghidra 与 Zig 之间的通信
- 函数反编译与重命名
- 数据符号管理
- 导入/导出列表管理
- MCP 服务器集成
- 全面的测试套件
- 基于 Zig 的现代构建系统
- 高效的内存管理
- 类型安全的 JNI 桥接实现
- 提供 Go 客户端库以便集成
适用场景
- 逆向工程与程序分析
- 二进制文件分析
- 安全研究与漏洞挖掘
- 自动化程序分析工具开发
工具列表
- Zig-based MCP Server: 提供程序分析的核心功能,如反编译、符号管理等。
- Go Client Library: 提供与 MCP 服务器交互的客户端库,便于集成到其他工具中。
- Ghidra Plugin: 在 Ghidra 中提供图形化界面,方便用户操作和分析。
常见问题解答
- 如何解决 JNI 通信问题?:检查 JNI 桥接实现和日志,确保类型转换和内存管理正确。
- 如何调试反编译失败?:查看 Ghidra 日志和服务器日志,确认输入参数和程序状态。
- 如何扩展功能?:更新 JNI 接口并在 Zig 中实现相应功能,然后重新构建插件。
使用教程
使用依赖
- 安装 Zig (版本 0.13.0 或更高):
bash
# 从官网下载并安装 Zig - 安装 Ghidra (版本 11.3.1 或更高):
bash
# 从 Ghidra 官网下载并安装 - 安装 JDK 17 或更高版本:
bash
# 例如使用 OpenJDK
sudo apt install openjdk-17-jdk - 安装 Go (版本 1.22.4 或更高):
bash
# 从 Go 官网下载并安装 - 安装 Gradle (版本 8.13 或更高):
bash
# 使用 SDKMAN 或手动安装
sdk install gradle 8.13 - 安装 Make:
bash
sudo apt install make
安装教程
- 克隆仓库:
bash
git clone https://github.com/yourusername/ghidra-mcp-zig.git
cd ghidra-mcp-zig - 创建
.env
文件并配置环境变量:
GHIDRA_PATH=/path/to/ghidra_11.3.1_PUBLIC/Ghidra/Features/Base/lib/Base.jar
JAVA_HOME=/path/to/your/jdk - 构建项目:
bash
make all - 运行服务器:
bash
make run-server - 安装插件到 Ghidra:
bash
make build-plugin
cp zig-out/lib/libghidra-mcp-zig.dylib /path/to/ghidra/Extensions/Ghidra/ghidra-mcp-zig/ - 重启 Ghidra。
调试方式
- 清理构建产物:
bash
make clean - 查看 Ghidra 日志中的插件相关消息。
- 运行服务器时查看控制台日志:
bash
make run-server - 使用测试套件:
bash
make test