
Ghidra MCP Zig Plugin

2025.03.26
4
Zig逆向工程程序分析二进制分析开发效率
Ghidra MCP Zig Plugin 是一个 Ghidra 插件,提供 Ghidra 与基于 Zig 的 MCP 服务器之间的桥梁,用于增强程序分析能力。该插件支持函数反编译、重命名、数据符号管理、导入/导出列表等功能,并通过 JNI 实现与 Ghidra 的安全通信。
View on GitHub
Overview
基本能力
产品定位
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