使用说明

项目简介

Binja Lattice MCP Server (binja-lattice-mcp) 作为一个 MCP 服务器,旨在将 Binary Ninja (一个专业的逆向工程平台) 的强大二进制分析能力暴露给大型语言模型 (LLM)。通过这个服务器,LLM 客户端可以利用 MCP 协议,安全地访问 Binary Ninja 分析的二进制文件信息,并调用工具来执行诸如获取反汇编、伪代码、修改函数名、添加注释等操作。这为构建基于 LLM 的自动化二进制分析和漏洞挖掘工具提供了坚实的基础。

主要功能点

  • 二进制分析上下文: 提供二进制文件的各种分析信息,例如函数名、反汇编代码、伪代码、变量信息、交叉引用等,作为 LLM 的上下文输入。
  • 二进制修改: 允许 LLM 通过工具调用修改 Binary Ninja 中的二进制分析结果,例如更新函数名、添加注释等,实现人机协作的分析流程。
  • MCP 工具: 注册了一系列 MCP 工具,例如 'get_binary_info', 'get_function_disassembly', 'update_function_name', 'add_comment_to_address' 等,方便 LLM 客户端调用。
  • 安全认证: 采用基于 API 密钥的认证机制,保障对 Binary Ninja 分析功能的安全访问。
  • 灵活部署: 通过 HTTP 协议通信,支持本地或远程部署,方便集成到不同的 LLM 应用环境中。

安装步骤

  1. 安装 Binary Ninja 插件:

    • 复制 'lattice_server_plugin.py' 文件到 Binary Ninja 的插件目录:
      • Linux: '~/.binaryninja/plugins/'
      • macOS: '~/Library/Application Support/Binary Ninja/plugins/'
      • Windows: '%APPDATA%\Binary Ninja\plugins'
  2. 创建并激活虚拟环境:

    • 打开终端,进入 'binja-lattice-mcp' 仓库目录,执行命令创建虚拟环境:'python -m venv venv-mcp'
    • 激活虚拟环境:
      • Linux/macOS: 'source venv-mcp/bin/activate'
      • Windows: 'venv-mcp\Scripts\activate'
  3. 安装 Python 依赖:

    • 在虚拟环境中,执行命令安装所需的 Python 库:'pip install -r requirements.txt'

服务器配置

为了让 MCP 客户端 (例如 Cursor) 连接到 Binja Lattice MCP Server,你需要配置客户端的 'mcp.json' 文件。以下是一个示例配置,请根据实际情况修改路径:

{
    "mcpServers": {
      "binja-lattice-mcp": {
        "command": "/path/to/venv-mcp/bin/python",  //  替换为你的虚拟环境 Python 解释器路径
        "args": ["/path/to/binja-lattice-mcp/mcp_server.py"], // 替换为 mcp_server.py 脚本的绝对路径
        "env": {
            "BNJLAT": "<your_api_key_here>" // API 密钥将在启动 Binary Ninja 插件后在日志中显示,启动插件后替换此处
        }
      }
    }
}

配置参数说明:

  • 'command': 指向 Python 解释器的路径,务必使用你创建的虚拟环境中的 Python 解释器路径
  • 'args': 一个字符串数组,包含 MCP 服务器脚本 'mcp_server.py' 的路径。请使用 'mcp_server.py' 脚本的绝对路径
  • 'env': 环境变量设置,'BNJLAT' 必须设置为启动 Binary Ninja 插件后在 Binary Ninja 日志控制台中显示的 API 密钥。

获取 API 密钥:

  1. 在 Binary Ninja 中打开一个二进制文件。
  2. 点击菜单 'Plugins > Start Lattice Protocol Server' 启动插件。
  3. 查看 Binary Ninja 的 "Log" 控制台 (View -> Show Log)。API 密钥将显示在日志信息中,例如 "API key: xxxxxxxxxxxxxxxxxxxxxxxx"。
  4. 将复制的 API 密钥替换到 'mcp.json' 配置文件中的 '<your_api_key_here>' 位置。

基本使用方法

  1. 确保 Binary Ninja 插件已安装并启动,且 MCP 服务器已根据上述配置正确启动。
  2. 在 MCP 客户端 (例如 Cursor) 中,配置并连接到名为 "binja-lattice-mcp" 的 MCP 服务器。
  3. 使用 MCP 客户端的工具调用功能,即可调用 Binja Lattice MCP Server 提供的工具,例如:
    • 调用 'get_binary_info' 工具获取当前分析二进制文件的基本信息。
    • 调用 'get_function_disassembly' 工具并传入函数名,获取指定函数的反汇编代码。
    • 调用 'update_function_name' 工具修改函数名称。
    • 调用 'add_comment_to_address' 或 'add_comment_to_function' 工具添加注释。

通过这些工具,LLM 客户端可以与 Binary Ninja 进行深度交互,实现更加智能化的二进制分析流程。

信息

分类

开发者工具