Token导航 LogoToken导航TokenDH.com
Ghidra MCP Zig logo
开发工具未说明官方级别未说明来源级核验

Ghidra MCP Zig

MCP Server

A Ghidra plugin that provides a bridge between Ghidra and a Zig-based MCP server for enhanced program analysis capabilities.

工具数

8

提示词数

0

GitHub Stars

7

资源数

0
逆向工程开发工具命令行工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

streamerd

提供方

streamerd

最后核验

2026/5/18 02:16

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Ghidra MCP Zig插件

![Ghidra](https://ghidra-sre.org/) ![Zig](https://ziglang.org/) ![License](LICENSE)

![Go](https://golang.org/) ![Gradle](https://gradle.org/)

Ghidra MCP Zig Plugin

一个Ghidra插件,在Ghidra和基于Zig的MCP服务器之间提供桥梁,以增强程序分析能力。

特性

  • 基于JNI的Ghidra与Zig通信
  • 函数反编译和重命名
  • 数据符号管理
  • 进出口清单
  • MCP服务器集成
  • 全面的测试套件
  • 使用Zig的现代构建系统
  • 高效的内存管理
  • 类型安全JNI网桥实施
  • Go客户端库,便于集成

先决条件

  • 之字形 (0.13.0或更高版本)
  • 希德拉 (11.3.1或更高版本)
  • Java开发工具包(JDK)17或更高版本
  • (版本1.22.4或更高版本)
  • Gradle (8.13或更高版本)
  • 制造

项目结构

ghidra-mcp-zig/
├── src/
│   ├── plugin/
│   │   ├── jni/
│   │   │   └── bridge.zig    # JNI interface implementation
│   │   ├── analysis.zig      # Program analysis logic
│   │   └── plugin.zig        # Plugin initialization
│   └── server/
│       └── main.zig          # MCP server implementation
├── java/                     # Ghidra plugin Java code
│   ├── build.gradle         # Gradle build configuration
│   ├── gradlew             # Gradle wrapper script
│   └── src/                # Java source files
├── pkg/
│   └── mcp/
│       └── client/         # Go MCP client library
│           ├── client.go   # Client implementation
│           └── client_test.go # Client tests
├── build.zig               # Build configuration
├── build.zig.zon          # Dependencies configuration
├── go.mod                 # Go module definition
└── Makefile              # Build automation

依赖项

  • zig jni (v0.0.9)-Zig的JNI绑定

建筑

  1. 克隆存储库:
   git clone https://github.com/yourusername/ghidra-mcp-zig.git
   cd ghidra-mcp-zig
  1. 创建一个 .env 包含以下变量的文件:
   GHIDRA_PATH=/path/to/ghidra_11.3.1_PUBLIC/Ghidra/Features/Base/lib/Base.jar
   JAVA_HOME=/path/to/your/jdk
  1. 构建项目:
   # Build everything
   make all

   # Or build specific components
   make build-server    # Build the MCP server
   make build-plugin   # Build the Ghidra plugin
  1. 运行服务器:
   make run-server

构建目标

目标描述示例用法
all构建所有组件make all
build-server构建MCP服务器make build-server
build-plugin构建Ghidra插件make build-plugin
clean清理所有工件make clean
clean-server清理服务器工件make clean-server
clean-plugin清理插件工件make clean-plugin

跑步目标

目标描述示例用法
run-server启动MCP服务器make run-server
run-plugin启动Ghidra插件make run-plugin

测试目标

目标描述示例用法
test运行所有测试make test
test-server运行服务器测试make test-server
test-plugin运行插件测试make test-plugin

有关可用目标的完整列表,请运行:

make help

安装

  1. 构建插件:
   make build-plugin
  1. 将构建的插件复制到Ghidra插件目录:
   cp zig-out/lib/libghidra-mcp-zig.dylib /path/to/ghidra/Extensions/Ghidra/ghidra-mcp-zig/
  1. 重新启动 Hydro

用法

  1. 启动Ghidra并打开程序进行分析
  2. MCP插件将在Ghidra插件管理器中提供
  3. 通过Ghidra界面使用插件的功能

可用的MCP命令

命令描述参数
decompile分解函数address: u64
rename_function重命名函数address: u64, new_name: string
rename_data重命名数据对象address: u64, new_name: string
list_functions列出所有函数
list_data列出所有数据对象
list_imports列出所有导入
list_exports列出所有导出

错误处理

该实现包括对特定错误类型的全面错误处理:

错误类型描述
ConnectionError连接相关错误
MessageError消息处理错误
ResponseError响应解析错误
InvalidAddress内存地址无效
InvalidFunction函数引用无效
InvalidData数据引用无效
DecompilationFailed函数反编译失败
RenameFailed重命名操作失败
OutOfMemory内存分配失败
InvalidProgram程序状态无效
JNIErrorJNI网桥错误

发展

添加新功能

  1. 在中更新JNI接口 src/plugin/jni/bridge.zig
  2. 在中实现相应的功能 src/plugin/analysis.zig
  3. 更新中的服务器实现 src/server/main.zig 如有需要
  4. 重建和测试

调试

  • 使用 make clean 删除构建工件
  • 检查Ghidra日志中与插件相关的消息
  • 使用运行时,服务器日志将在控制台中可用 make run-server

JNI网桥实施

JNI桥在Zig和Java之间提供了一个类型安全的接口:

  • 具有适当分配/释放的内存管理
  • JNI参考管理 DeleteLocalRef
  • 使用空检查进行错误处理
  • Zig和Java类型之间的类型转换
  • 数组创建和元素设置
  • 对象创建和字段设置

主要特点

  1. 内存安全

- 自动清理JNI引用 - 使用UTF-8转换进行正确的字符串处理 - 安全内存分配和释放

  1. 类型安全

- 所有JNI操作的强打字 - 编译时类型检查 - 安全类型转换

  1. 错误处理

- 全面的错误类型 - 所有JNI操作的空检查 - 正确清理错误

  1. 对象管理

- 安全对象创建和销毁 - 带类型检查的现场访问 - 带边界检查的数组处理

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

目录标签

目录标签

逆向工程开发工具命令行工具developer-toolsghidrapluginzigprogram-analysis本地部署程序分析Ghidra插件Zig开发JNI桥接

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP