Ghidra MCP Zig Plugin

Ghidra MCP Zig Plugin

site icon
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 中实现相应功能,然后重新构建插件。

使用教程

使用依赖

  1. 安装 Zig (版本 0.13.0 或更高): bash # 从官网下载并安装 Zig
  2. 安装 Ghidra (版本 11.3.1 或更高): bash # 从 Ghidra 官网下载并安装
  3. 安装 JDK 17 或更高版本: bash # 例如使用 OpenJDK sudo apt install openjdk-17-jdk
  4. 安装 Go (版本 1.22.4 或更高): bash # 从 Go 官网下载并安装
  5. 安装 Gradle (版本 8.13 或更高): bash # 使用 SDKMAN 或手动安装 sdk install gradle 8.13
  6. 安装 Make: bash sudo apt install make

安装教程

  1. 克隆仓库: bash git clone https://github.com/yourusername/ghidra-mcp-zig.git cd ghidra-mcp-zig
  2. 创建 .env 文件并配置环境变量: GHIDRA_PATH=/path/to/ghidra_11.3.1_PUBLIC/Ghidra/Features/Base/lib/Base.jar JAVA_HOME=/path/to/your/jdk
  3. 构建项目: bash make all
  4. 运行服务器: bash make run-server
  5. 安装插件到 Ghidra: bash make build-plugin cp zig-out/lib/libghidra-mcp-zig.dylib /path/to/ghidra/Extensions/Ghidra/ghidra-mcp-zig/
  6. 重启 Ghidra。

调试方式

  1. 清理构建产物: bash make clean
  2. 查看 Ghidra 日志中的插件相关消息。
  3. 运行服务器时查看控制台日志: bash make run-server
  4. 使用测试套件: bash make test

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。