article
README
🚀 Ghidra MCP Zig 插件
Ghidra MCP Zig 插件是一个结合了 Ghidra 调试器和 Zig 编程语言的综合项目。该插件通过提供函数反编译、重命名等高级功能,显著增强了 Ghidra 的逆向工程和静态分析能力。
🚀 快速开始
启动 Ghidra 并打开待分析的程序,插件会出现在 Ghidra 的插件管理器中,通过 Ghidra 界面即可使用插件功能。
✨ 主要特性
- JNI 桥接:实现 Zig 和 Java 之间的通信。
- 分析逻辑:处理函数反编译和重命名等核心功能。
- 服务器实现:提供远程命令执行接口。
📦 安装指南
安装依赖项
确保安装以下软件:
- Zig 编程语言
- Ghidra 调试器
- JDK 17
- CMake
在 CMakeLists.txt 中启用混合导出以兼容不同平台:
set(CMAKE_MIXED_EXPORTS TRUE)
安装步骤
- 编译插件:
make build-plugin - 将生成的插件复制到 Ghidra 的插件目录:
cp zig-out/lib/libghidra-mcp-zig.dylib /path/to/ghidra/Extensions/Ghidra/ghidra-mcp-zig/ - 重启 Ghidra。
💻 使用示例
基础用法
插件提供了一系列可用命令,以下是部分命令示例:
- 反编译函数:
decompile - 重命名函数:
rename_function - 重命名数据:
rename_data - 列出所有函数:
list_functions - 列出所有数据:
list_data - 列出导入:
list_imports - 列出导出:
list_exports
📚 详细文档
错误处理
插件提供了多种错误类型以帮助调试:
- ConnectionError:连接相关问题。
- MessageError:消息处理错误。
- ResponseError:响应解析失败。
开发与调试
- 更新 JNI 桥接实现:
src/plugin/jni/bridge.zig - 实现相应功能:
src/plugin/analysis.zig - 如需更新服务器逻辑:
src/server/main.zig
贡献指南
- Fork 该项目。
- 创建新功能分支。
- 提交更改。
- 推送到分支。
- 提交 Pull Request。
📄 许可证
项目遵循 MIT 许可证,详情请查看 LICENSE 文件。
微信扫一扫