Binary Ninja mcp 服务器
一种服务器,能够实现 Binary Ninja 的反向工程功能与 LLM 辅助的无缝集成,使像 Claude 这样的 AI 工具可以实时与二进制分析功能进行交互。
服务介绍
Binary Ninja MCP
此仓库包含一个 Binary Ninja 插件、MCP 服务器和桥接器,可实现 Binary Ninja 功能与您喜爱的 LLM 客户端之间的无缝集成。
特性
- Binary Ninja 和 MCP 客户端之间的无缝实时集成
- 借助 AI 辅助增强的逆向工程工作流程
- 主要支持 Claude Desktop 作为 MCP 客户端,但也可扩展到其他集成
示例
生成二进制分析报告

重命名函数

组件
此仓库包含两个独立的组件:
- 一个 Binary Ninja 插件,提供了一个 MCP 服务器,通过 HTTP 端点暴露了 Binary Ninja 的功能。这可以与任何实现 MCP 协议的客户端一起使用。
- 一个单独的 MCP 桥接组件,将您喜欢的 MCP 客户端连接到 Binary Ninja MCP 服务器。虽然 Claude Desktop 是主要的集成路径,但 MCP 服务器也可以与其他客户端一起使用。
支持的集成
下表详细列出了当前支持的与 Binary Ninja 的集成。
| 功能 | 描述 |
|---|---|
get_binary_status |
获取加载的二进制文件的当前状态。 |
list_classes |
列出程序中的所有命名空间/类名。 |
list_data_items |
列出定义的数据标签及其值。 |
list_exports |
列出导出的函数/符号。 |
list_imports |
列出程序中的导入符号。 |
list_methods |
列出程序中的所有函数名。 |
list_namespaces |
列出程序中的所有非全局命名空间。 |
list_segments |
列出程序中的所有内存段。 |
rename_data |
重命名指定地址处的数据标签。 |
rename_function |
将函数从其当前名称重命名为新的用户定义名称。 |
search_functions_by_name |
搜索名称中包含给定子字符串的函数。 |
decompile_function |
通过名称反编译特定函数并返回反编译后的 C 代码。 |
set_comment |
在指定地址设置注释。 |
set_function_comment |
为函数设置注释。 |
get_comment |
获取指定地址处的注释。 |
get_function_comment |
获取函数的注释。 |
delete_comment |
删除指定地址处的注释。 |
delete_function_comment |
删除函数的注释。 |
先决条件
- Binary Ninja
- Python 3.12+
- Claude Desktop(或您首选的集成)
安装
Binary Ninja 插件
您可以通过 Binary Ninja 的插件管理器安装插件(Plugins > Manage Plugins)。

要手动配置插件,可以将此仓库复制到 Binary Ninja 插件文件夹中。
Claude 桌面桥接(可选)
仅当您希望使用 Claude Desktop 作为您的 MCP 客户端时才需要这样做。请确保首先配置好您的虚拟环境:
git clone git@github.com:fosdickio/binary_ninja_mcp.git
cd binary_ninja_mcp
python3 -m venv .venv
source .venv/bin/activate # On macOS/Linux
pip install -r bridge/requirements.txt
自动配置(Mac)
在 Mac 上,您可以通过运行以下命令来自动设置:
./scripts/setup_claude_desktop.py
手动配置
在其他操作系统上或手动配置 Claude Desktop 集成:
- 导航至
设置 > 开发者 > 编辑配置 - 添加以下配置:
{
"mcpServers": {
"binary_ninja_mcp": {
"command": "/ABSOLUTE/PATH/TO/binary_ninja_mcp/.venv/bin/python",
"args": [
"/ABSOLUTE/PATH/TO/binary_ninja_mcp/bridge/binja_mcp_bridge.py"
]
}
}
}
注意:请将 /ABSOLUTE/PATH/TO 替换为您的项目目录的实际绝对路径。必须使用虚拟环境的 Python 解释器来访问已安装的依赖项。
使用方法
Claude 桌面版
- 打开 Binary Ninja 并安装
Binary Ninja MCP插件 - 重启 Binary Ninja 然后打开一个二进制文件
- 启动 MCP 服务器 (
插件 > MCP 服务器 > 启动 MCP 服务器) - 启动 Claude 桌面版
在打开 Claude 桌面版之后,集成将自动可用。

现在您可以开始向 Claude 提问关于当前打开的二进制文件的问题了。示例提示:
- "为当前二进制文件生成分析报告。"
- "在当前二进制文件中将函数 X 重命名为 Y。"
- "列出当前二进制文件中的所有函数。"
- "加载的二进制文件的状态是什么?"
其他 MCP 客户端集成
通过实现适当的集成层,桥接也可以与其他 MCP 客户端一起使用。
开发
项目结构组织如下:
binary_ninja_mcp/
├── bridge/ # MCP client integration
├── plugin/ # Binary Ninja plugin
├── scripts/
│ └── setup_claude_desktop.py # Setup script for Claude Desktop
贡献
欢迎贡献。请随时提交拉取请求。