使用说明

项目简介

Binary Ninja MCP 服务器是一个基于模型上下文协议(MCP)构建的应用后端,旨在桥接大型语言模型(LLM)与 Binary Ninja 逆向工程平台。它允许 LLM 通过标准化的 MCP 接口,安全、可扩展地访问 Binary Ninja 的强大功能,从而实现代码分析、自动化逆向任务和增强型人机协作。

主要功能点

  • 代码信息获取: 获取指定函数或当前光标所在函数的汇编代码和反编译代码(HLIL)。
  • 符号信息查询: 查询全局变量等符号的信息。
  • 代码编辑: 重命名函数和变量,为代码地址添加注释。
  • 二进制信息: 获取二进制文件的基本信息,如架构、大小、段和节等。

安装步骤

  1. 安装 'binja-mcp' Python 包: 您可以使用 'pip' 命令安装 'binja-mcp' 包:

    pip install binja-mcp

    或者,如果您使用 'uv' 包管理器,请参考仓库 README 文档中的 'uv' 安装指南。

  2. 安装 Binary Ninja 插件: 将仓库克隆或链接到 Binary Ninja 的插件目录。插件目录位置取决于您的操作系统:

    • Linux: '~/.binaryninja/plugins/'
    • macOS: '~/Library/Application Support/Binary Ninja/plugins/'
    • Windows: '%APPDATA%\Binary Ninja\plugins'

服务器配置

对于 MCP 客户端(如 Claude Desktop 或 Cursor),您需要配置 MCP 服务器的连接信息。在客户端的 MCP 服务器配置文件(通常是 JSON 格式)中,添加以下配置:

"mcpServers": {
  "binja": {
    "command": "python",
    "args": [
      "-m",
      "binja_mcp"
    ]
  }
}
  • '"binja"': 服务器名称,您可以自定义。
  • '"command": "python"': 启动服务器的命令,这里使用 Python 解释器。
  • '"args": ["-m", "binja_mcp"]': 传递给 Python 解释器的参数,'-m binja_mcp' 表示以模块方式运行 'binja_mcp' 包,启动 MCP 服务器。

基本使用方法

  1. 启动 Binary Ninja 和加载二进制文件: 打开 Binary Ninja 并加载您要分析的二进制文件。
  2. 启动 MCP 服务器插件: 在 Binary Ninja 的 "Tools" 菜单中,选择 "MCP Server\Start MCP Server",或者使用插件注册的快捷键启动服务器。
  3. 配置并连接 MCP 客户端: 在您的 MCP 客户端(如 Claude Desktop 或 Cursor)中配置上述服务器连接信息,并连接到 "binja" 服务器。
  4. 使用 MCP 客户端发送命令: 通过 MCP 客户端,您可以调用服务器提供的各种工具(命令),例如获取函数汇编、反编译代码、重命名函数等,与 Binary Ninja 进行交互。

信息

分类

开发者工具