关于 binary-ninja-reverse
binary-ninja-reverse 是面向逆向分析人员的 Binary Ninja 技能,适用于交互式 IL 数据流分析或独立交叉验证。它指导安全分析、证据记录及社区 MCP 桥接的谨慎使用。
主要功能
- 01Binary Ninja GUI 与 Python API 工作流
- 02HLIL、MLIL SSA 和 LLIL 分析
- 03检查导入、导出、字符串和交叉引用
- 04基于地址的证据记录
- 05安全修改补丁和数据库的指引
适用场景
- 01追踪函数中的数据流
- 02交叉验证其他反汇编器的发现
- 03记录可复现的二进制分析
- 04通过用户指定的 MCP 桥接使用 Binary Ninja
MCP 相关
该技能介绍了可选的 Binary Ninja 社区 MCP 桥接。它要求先审查插件边界,将 HTTP 监听器限制在本机,并在用户选择的 MCP 客户端中注册桥接。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zhaoxuya520/ reverse-skill --skill binary-ninja-reverse安装后在 Claude Code 中输入/binary-ninja-reverse确认已加载。
附带文件agents/openai.yaml
详细介绍
Binary Ninja 逆向工程
当用户明确选择 Binary Ninja 时、当其 IL 对数据流分析有实质性帮助时,或当 IDA/Ghidra/radare2 的结果需要独立交叉验证时,请使用 Binary Ninja。
安全起步
- 在对目标执行操作前,确认仓库案例范围已就绪。
- 在
skills/tool-index.md中检查binaryninja;Binary Ninja 是商业软件,必须使用有效的 Vector 35 许可证手动安装。 - 在应用补丁或保存数据库更改时,请在副本上操作。
- 在提升发现之前,记录导入/导出、入口点、架构和文件哈希。
选择集成方式
- GUI 或 Python API: 当 Binary Ninja 已打开,或用户希望直接进行交互式分析时,优先使用。
- 社区 MCP 桥接: 仅在明确要求时使用,并在审查第三方插件边界后使用。将 Binary Ninja HTTP 监听器保持在
127.0.0.1:9009;默认不要启用网络暴露。 - 回退方案: 当 Binary Ninja 不可用,或其许可证/API 无法打开目标时,使用
ghidra-reverse、ida-reverse或radare2。
已审查的社区集成是 fosdickio/binary_ninja_mcp,GPL-3.0,插件元数据版本 1.1.0,最低 Binary Ninja 构建版本 4000。该仓库不是 Vector 35 的官方组件。此技能已于 2026-09-03 对照提交 8c5134ee46e2bf44f9a4d846bd971c3e39b3e306 检查。
通过其 Plugin Manager 或从已审查的源代码安装 Binary Ninja 侧组件。对于 MCP stdio 桥接,请固定已发布的桥接版本,而不是使用无界包:
npx -y [email protected] --host 127.0.0.1 --port 9009
仅在用户选择的 MCP 客户端中注册该命令。在 Binary Ninja 正在运行、已打开二进制文件且 localhost 插件端点有响应之前,桥接尚未就绪。
分析工作流
- 枚举已打开的二进制文件并选择预期的视图。
- 捕获二进制状态、入口点、段、导入、导出和具有代表性的字符串。
- 在孤立解释某个函数之前,先跟踪调用点和交叉引用。
- 使用 HLIL 获取可读逻辑,使用 MLIL SSA 进行数据流分析,并在提升丢失指令级行为时使用 LLIL/反汇编。
- 增量应用名称、注释和类型;在证据中保留原始地址。
- 将字节补丁、原型更改和保存文件写入视为变更。仅在要求时执行,并保留原始工件。
- 用第二个证据来源或另一个反汇编器交叉检查高影响结论。
有用的 MCP 能力族包括二进制/视图选择、list_imports、list_exports、list_strings、decompile_function、get_il、调用者/被调用者、交叉引用、类型、注释、重命名和字节补丁。请发现实时工具列表,而不是假设每个上游函数都存在。
输出
报告具体地址、函数名、IL 级别、支持性字符串/导入、置信度和复现步骤。保持仓库其余部分使用的 Evidence → Finding → Path 链条。