基本能力
产品定位
binaryninja-mcp 是一个为 Binary Ninja 设计的 MCP 服务器,提供与 Binary Ninja 交互的接口和工具,支持通过 MCP 协议访问 Binary Ninja 的分析功能。
核心功能
- 符号重命名(rename_symbol)
- 伪代码生成(pseudo_c, pseudo_rust)
- 高级和中级中间语言生成(high_level_il, medium_level_il)
- 反汇编(disassembly)
- 分析更新(update_analysis_and_wait)
- 获取二进制文件的基本信息(get_triage_summary)
- 获取导入/导出符号(get_imports, get_exports)
- 获取内存段和二进制节(get_segments, get_sections)
- 获取字符串列表(get_strings)
- 获取函数和数据变量列表(get_functions, get_data_variables)
适用场景
- 逆向工程
- 二进制分析
- 安全研究
工具列表
rename_symbol
: 重命名函数或数据变量pseudo_c
: 获取指定函数的伪 C 代码pseudo_rust
: 获取指定函数的伪 Rust 代码high_level_il
: 获取指定函数的高级中间语言medium_level_il
: 获取指定函数的中级中间语言disassembly
: 获取函数或指定范围的反汇编update_analysis_and_wait
: 更新二进制分析并等待完成get_triage_summary
: 获取 BinaryNinja Triage 视图的基本信息get_imports
: 获取导入符号的字典get_exports
: 获取导出符号的字典get_segments
: 获取内存段列表get_sections
: 获取二进制节列表get_strings
: 获取二进制中的字符串列表get_functions
: 获取函数列表get_data_variables
: 获取数据变量列表
常见问题解答
- 如何配置 MCP 客户端?
- 对于 Claude Desktop,配置 stdio 传输使用内置中继。
- 对于 Cherry Studio,可以使用 SSE 端点或 stdio 客户端。
- 如何更改服务器端口?
- 使用
--port
标志指定不同的端口。
使用教程
使用依赖
- 需要安装 Binary Ninja 和 Python 环境。
安装教程
- Binary Ninja UI 插件安装:
- 通过 Binary Ninja 的插件管理器安装插件。
-
MCP 服务器将在首次加载文件时自动启动。
-
Binary Ninja 无头模式安装:
bash
uvx binaryninja-mcp install-api # 仅需运行一次
uvx binaryninja-mcp server <filename> [filename]... - 使用
--port
标志指定不同的端口。
调试方式
- 检查 API 是否正确安装:
bash
uv run python -c 'import binaryninja as bn; print(f"ui_enabled={bn.core_ui_enabled()}")' - 运行测试:
bash
pytest
# 更新测试快照:
pytest --snapshot-update