Ghidra_mcp

Ghidra_mcp

🚀 🔍 Ghidra MCP 服务器

本项目支持借助 Ghidra 的无头模式,从二进制文件里提取丰富的反编译数据(如函数、伪代码、结构体、枚举等),并将其输出为 JSON 文件。同时,通过 Model Context Protocol (MCP) 把这些数据提供给像 Claude 这样的大语言模型。它成功将 Ghidra 转变为一个交互式的逆向工程后端。

🚀 快速开始

本项目可让你使用 Ghidra 的无头模式,从二进制文件中提取反编译数据,输出到 JSON 文件,并通过 MCP 提供给大语言模型,将 Ghidra 变成交互式逆向工程后端。

✨ 主要特性

  • 运用 Ghidra 无头模式对二进制文件进行反编译。
  • 能够提取以下内容:
    • 函数伪代码、名称、参数、变量、字符串以及注释。
    • 数据结构(结构体)、枚举和函数定义。
  • 将提取结果输出到 ghidra_context.json 文件。
  • MCP 服务器提供如下工具:
    • list_functions()get_pseudocode(name)
    • list_structures()get_structure(name)
    • list_enums()get_enum(name)
    • list_function_definitions()get_function_definition(name)

📦 安装指南

⚙️ 系统要求

  • macOS(已测试)
  • Python 3.10+
  • Ghidra 11.3.1+
  • Java 21(推荐使用 Temurin)
  • MCP 客户端(例如 Claude Desktop)
  • mcp CLI(通过 pip install mcp 安装)

🧪 安装与设置

✅ 1. 安装 Java 21(Ghidra 11.3.1 的必需项)

brew install --cask temurin@21

然后进行配置:

export JAVA_HOME=$(/usr/libexec/java_home -v 21)
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 21)' >> ~/.zshrc
source ~/.zshrc

检查安装情况:

java -version

应该显示:openjdk 版本 "21.0.x"...

✅ 2. 安装 Ghidra

下载并解压 Ghidra 11.3.1

✅ 3. 安装 Python 和依赖项

安装 Python 3.10+ 并通过 pip 安装以下依赖项:

pip install mcp-server requests

📚 详细文档

📂 项目结构

属性 详情
main.py MCP 服务器及其工具
export_context.py Ghidra 脚本用于提取 JSON
crackme.c 示例 C 二进制文件
crackme 编译后的二进制文件用于测试

👨‍💻 作者

Tomi Bamimore
Ghidra 由美国国家安全局开发
MCP 由 Anthropic 开发

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-30 07:57

相似服务问题