项目简介

MCP-Ghidra5是一个先进的Model Context Protocol (MCP) 服务器,它将强大的Ghidra逆向工程功能与多模型AI技术无缝集成。该工具支持OpenAI GPT-5、Anthropic Claude、Google Gemini等7大AI服务商,以及通过Ollama集成的本地LLM,旨在将耗时的人工二进制分析转化为自动化、智能化的工作流程,同时优化成本并提供自动故障转移系统,是专业级的网络安全工具。

主要功能点

  • 多模型AI支持:集成OpenAI GPT-5/GPT-4o、Claude 3.5、Gemini 1.5 Pro、Grok Beta、Perplexity、DeepSeek及Ollama(用于本地LLM)等7个AI提供商。
  • 智能故障转移与成本优化:自动选择最合适的AI模型,确保服务高可用性,并通过智能模型选择节省30-50%的AI成本。
  • 综合二进制分析:利用Ghidra进行全面的可执行文件分析,并结合AI进行解释和洞察。
  • 高级逆向工程:支持函数反编译、恶意软件检测、漏洞利用开发、固件分析及模式识别等。
  • 安全与性能:确保API密钥安全,分析结果不远程存储,本地化处理Ghidra分析,并提供快速、深度的分析模式。
  • Tier 1 二进制工具:新增字符串提取、文件信息、Objdump反汇编、Readelf分析、Hexdump分析等基础二进制分析工具,并可选择AI辅助分析。

安装步骤

  1. 安装Ghidra (必要)
    • 从GitHub下载Ghidra最新版本:'https://github.com/NationalSecurityAgency/ghidra/releases'
    • 建议解压到 '/opt/ghidra/' 目录。例如,如果您下载的文件名为 'ghidra_10.3_PUBLIC_20240320.zip':
      sudo mkdir -p /opt/ghidra
      sudo tar -xzf ghidra_*.zip -C /opt/ && sudo mv /opt/ghidra_* /opt/ghidra
  2. 下载MCP-Ghidra5
    wget https://github.com/TheStingR/MCP-Ghidra5/archive/main.zip
    unzip main.zip && cd MCP-Ghidra5-main
  3. 运行安装脚本
    cd MCP-Ghidra5
    ./install_mcp_ghidra5.sh
    • 按照提示接受条款并输入您的OpenAI API Key。
  4. 配置API Key
    • 在您的环境中设置OpenAI API Key(推荐):
      export OPENAI_API_KEY="sk-your-openai-api-key-here"
    • 若要使用其他AI模型(如Claude、Gemini),请设置相应的API Key环境变量,例如:
      export ANTHROPIC_API_KEY="sk-your-anthropic-api-key-here"
      export GEMINI_API_KEY="your-gemini-api-key-here"
      # 更多AI提供商请参考仓库文档,通常格式为 'export PROVIDER_API_KEY="your-key"'
    • 如果您希望指定默认使用的AI模型,可以设置:
      export AI_MODEL_PREFERENCE="claude-3-5-sonnet" # 例如,将默认模型设置为Claude
  5. 启动服务器
    python3 ghidra_gpt5_mcp.py
    • 服务器将以Stdio模式运行,等待MCP客户端连接。

服务器配置 (供MCP客户端连接使用)

MCP客户端需要配置MCP服务器的启动命令及其参数才能与该服务器建立连接。以下是推荐的JSON格式配置信息:

{
  "name": "Ghidra GPT-5 MCP Server",
  "command": ["python3"],
  "args": ["/path/to/MCP-Ghidra5/ghidra_gpt5_mcp.py"],
  "description": "通过Ghidra和多模型AI提供高级逆向工程服务",
  "capabilities": {
    "tools": [
      "ghidra_binary_analysis",
      "ghidra_function_analysis",
      "ghidra_exploit_development",
      "ghidra_malware_analysis",
      "ghidra_firmware_analysis",
      "ghidra_code_pattern_search",
      "gpt5_reverse_engineering_query",
      "ai_model_status",
      "binary_strings_analysis",
      "binary_file_info",
      "binary_objdump_analysis",
      "binary_readelf_analysis",
      "binary_hexdump_analysis"
    ]
  }
}
  • name: 'Ghidra GPT-5 MCP Server',MCP客户端中显示的服务器名称。
  • command: '["python3"]',用于启动MCP服务器的可执行命令。
  • args: '["/path/to/MCP-Ghidra5/ghidra_gpt5_mcp.py"]',传递给启动命令的参数。请将 '/path/to/MCP-Ghidra5/' 替换为MCP-Ghidra5仓库在您系统上的实际路径。
  • description: '通过Ghidra和多模型AI提供高级逆向工程服务',服务器的功能描述。
  • capabilities: 服务器提供的功能列表,这里列出了所有可用的MCP工具,MCP客户端可据此了解服务器能力。

基本使用方法

配置MCP客户端后,您可以通过客户端调用该服务器提供的各种工具。例如,在支持MCP的客户端(如某些集成开发环境或终端插件)中:

  • 执行二进制分析 调用 'ghidra_binary_analysis' 工具,提供二进制文件路径和分析深度:

    call_mcp_tool("ghidra_binary_analysis", {
        "binary_path": "/path/to/your/executable",
        "analysis_depth": "deep",
        "focus_areas": ["vulnerabilities", "crypto"]
    })
  • 直接向AI提问 调用 'gpt5_reverse_engineering_query' 工具,提出您的逆向工程问题,并可选择指定首选AI模型:

    call_mcp_tool("gpt5_reverse_engineering_query", {
        "query": "如何在Linux x64系统上利用栈溢出漏洞?",
        "specialization": "binary_exploitation",
        "preferred_model": "claude-3-5-sonnet"
    })
  • 检查AI模型状态 调用 'ai_model_status' 工具,查看当前AI模型的可用性、用量统计和配置:

    call_mcp_tool("ai_model_status", {"action": "status"})
  • 进行字符串分析 调用 'binary_strings_analysis' 工具,提取二进制文件中的字符串并进行AI分析:

    call_mcp_tool("binary_strings_analysis", {
        "binary_path": "/path/to/your/binary",
        "min_length": 6,
        "encoding": "all",
        "ai_analysis": True
    })

信息

分类

AI与计算