使用说明
项目简介
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 应用环境中。
安装步骤
-
安装 Binary Ninja 插件:
- 复制 'lattice_server_plugin.py' 文件到 Binary Ninja 的插件目录:
- Linux: '~/.binaryninja/plugins/'
- macOS: '~/Library/Application Support/Binary Ninja/plugins/'
- Windows: '%APPDATA%\Binary Ninja\plugins'
- 复制 'lattice_server_plugin.py' 文件到 Binary Ninja 的插件目录:
-
创建并激活虚拟环境:
- 打开终端,进入 'binja-lattice-mcp' 仓库目录,执行命令创建虚拟环境:'python -m venv venv-mcp'
- 激活虚拟环境:
- Linux/macOS: 'source venv-mcp/bin/activate'
- Windows: 'venv-mcp\Scripts\activate'
-
安装 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 密钥:
- 在 Binary Ninja 中打开一个二进制文件。
- 点击菜单 'Plugins > Start Lattice Protocol Server' 启动插件。
- 查看 Binary Ninja 的 "Log" 控制台 (View -> Show Log)。API 密钥将显示在日志信息中,例如 "API key: xxxxxxxxxxxxxxxxxxxxxxxx"。
- 将复制的 API 密钥替换到 'mcp.json' 配置文件中的 '<your_api_key_here>' 位置。
基本使用方法
- 确保 Binary Ninja 插件已安装并启动,且 MCP 服务器已根据上述配置正确启动。
- 在 MCP 客户端 (例如 Cursor) 中,配置并连接到名为 "binja-lattice-mcp" 的 MCP 服务器。
- 使用 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 进行深度交互,实现更加智能化的二进制分析流程。
信息
分类
开发者工具