使用说明

项目简介

Binary Ninja MCP Server 是一个 Binary Ninja 插件,它在 Binary Ninja 内部启动一个 HTTP 服务器,作为 MCP 服务器,对外提供了一系列 API 接口,可以将 Binary Ninja 的二进制分析能力暴露给 LLM 客户端,例如 Claude Desktop。通过这些接口,LLM 可以获取二进制文件的信息,执行反编译、重命名函数等操作,从而实现 AI 辅助的逆向工程工作流。

主要功能点

  • 二进制文件信息查询: 获取二进制文件的状态、函数列表、类列表、段列表、导入导出表、命名空间、数据项等信息。
  • 函数操作: 根据名称或地址查找函数,获取函数信息,反编译函数,重命名函数。
  • 数据操作: 重命名数据项。
  • 集成 Claude Desktop: 提供与 Claude Desktop 的无缝集成,可以使用自然语言指令调用 Binary Ninja 的功能。

安装步骤

  1. 安装 Binary Ninja: 确保已安装 Binary Ninja 软件。
  2. 克隆仓库: 使用 'git clone [email protected]:fosdickio/binary_ninja_mcp.git' 命令克隆仓库到本地。
  3. 安装依赖: 进入仓库目录,使用 'uv venv' 创建虚拟环境,然后使用 'uv pip install -e .' 安装插件依赖。
    cd binary_ninja_mcp
    uv venv
    source .venv/bin/activate  # macOS/Linux
    uv pip install -e .
  4. 安装 Binary Ninja 插件: 将仓库 'plugins/binary_ninja_mcp' 目录下的 'binary_ninja_mcp' 文件夹复制到 Binary Ninja 的插件目录。插件目录通常位于 '~/.binaryninja/plugins/' (不同操作系统可能略有差异)。

服务器配置

对于 MCP 客户端 (例如 Claude Desktop),需要配置 MCP 服务器的启动命令。以下是 Claude Desktop 的配置示例,其他 MCP 客户端的配置方法类似。

在 Claude Desktop 的 'Settings > Developer > Edit Config' 中,添加以下 JSON 配置:

{
  "mcpServers": {
    "binaryninja_mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "ABSOLUTE_PATH_TO_DIR/binary_ninja_mcp/src",  //  请替换为 binary_ninja_mcp 仓库 src 目录的绝对路径
        "run",
        "binja_mcp_bridge.py"
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'binaryninja_mcp' (服务器名称,客户端用于识别和调用)
  • 'command': 'uv' (启动命令,这里使用 'uv' 包管理器)
  • 'args': 启动参数列表
    • '--directory': 'ABSOLUTE_PATH_TO_DIR/binary_ninja_mcp/src' (指定工作目录为 'binary_ninja_mcp/src' 目录,请替换为实际的绝对路径)
    • 'run': 'run' 命令表示运行 Python 脚本
    • 'binja_mcp_bridge.py': 要运行的 Python 脚本为 'binja_mcp_bridge.py' (MCP 桥接脚本)

基本使用方法

  1. 启动 Binary Ninja 和 MCP Server: 打开 Binary Ninja,加载要分析的二进制文件。在 Binary Ninja 菜单栏中选择 'Plugins > MCP Server > Start MCP Server' 启动 MCP 服务器。
  2. 配置并启动 MCP 客户端: 配置 MCP 客户端连接到 Binary Ninja MCP Server。例如,对于 Claude Desktop,按照上述服务器配置步骤进行配置。启动 Claude Desktop 或其他 MCP 客户端。
  3. 使用 LLM 客户端进行交互: 在 LLM 客户端中,可以使用自然语言指令调用 Binary Ninja 的功能。例如,在 Claude Desktop 中,可以提问 "Decompile function main in Binary Ninja" 或 "Rename function sub_401000 to important_function in Binary Ninja"。

注意事项

  • 确保 Binary Ninja MCP Server 插件已正确安装并启动。
  • 确保 MCP 客户端配置的服务器启动命令和参数正确,工作目录和脚本路径需要替换为实际路径。
  • Binary Ninja MCP Server 通过 HTTP 协议与 MCP 客户端通信,默认端口为 9009。

信息

分类

开发者工具