工具
Binary Ninja 公开 API
Vector 35 为 Binary Ninja 公开的 C++、Python 和 Rust API,附带文档、示例以及基于这些 API 的开源插件。Binary Ninja 本身是闭源商业软件,本仓库不包含其分析核心。开源插件涵盖 x86/x86_64、ARM64、ARMv7、PowerPC、MIPS、RISC-V 和 MSP430 架构,ELF、PE/COFF、Mach-O 以及 Apple 共享缓存和内核缓存加载器,DWARF、PDB 与 IDB 导入,以及 Objective-C、RTTI 和 SVD 分析;示例则演示如何遍历低级与中级中间语言,并通过工作流扩展分析流程。
使用条件与局限
- dev 分支跟踪 Binary Ninja 的开发版构建。审阅时本仓库最新的发布为 stable/6.0.10601,发布于 2026-09-03,其附件是 Binary Ninja Free 安装包;所审阅的 dev 提交比它多 165 个提交,插件注册 MCP 工具的指南等仅在 dev 上的内容并未包含在该版本中。README 称 master 分支跟踪稳定版,但 master 最后一次更新是在 2024 年 8 月。
- 该 API 无法单独运行:插件和脚本需加载已安装的 Binary Ninja 中的闭源核心。C++ 插件必须基于安装目录中 api_REVISION.txt 所指定的 API 版本构建;安装包附带的 install_api.py 脚本可将 Python 模块添加到其他解释器。独立示例及其他无界面脚本需要支持无界面 API 访问的许可证;插件指南指出非商业许可证不提供无界面自动化,并说明 Commercial 和 Ultimate 版本可用。
- CMakeLists.txt 要求 CMake 3.28+、64 位 C++20 工具链以及 Python 3.12+ 解释器。UI 插件需要 Qt 6.8.2,README 建议使用官方安装程序或 Vector 35 的 Qt 构建,而不要使用 Homebrew 版本;-DHEADLESS=ON 可跳过 UI 插件。Rust crate 声明 rust-version 为 1.98.1。
- 大部分 API 和文档采用 MIT 许可,Rust API 采用 Apache-2.0;部分组件附有各自的许可证文件,贡献代码需签署 Vector 35 的 CLA。这些许可证仅覆盖 API 层,并不意味着 Binary Ninja 是开源软件。该仓库的问题追踪器同时服务于整个产品。本次未构建任何插件,也未分析任何二进制。
关于此条目
- 类型
- 工具
- 类别
- 原生分析工具
- 关联
- 基础工具
- 目标
- 二进制 · 固件
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · Vector35/binaryninja-api · 修订 14d46ea
- README.md#L17-L45 GitHub · Vector35/binaryninja-api · 修订 14d46ea
- README.md#L74-L78 GitHub · Vector35/binaryninja-api · 修订 14d46ea
- README.md#L140-L146 GitHub · Vector35/binaryninja-api · 修订 14d46ea
- CMakeLists.txt GitHub · Vector35/binaryninja-api · 修订 14d46ea
- rust/Cargo.toml GitHub · Vector35/binaryninja-api · 修订 14d46ea
- LICENSE.txt GitHub · Vector35/binaryninja-api · 修订 14d46ea
- rust/LICENSE GitHub · Vector35/binaryninja-api · 修订 14d46ea
- docs/dev/plugins.md#L57-L75 GitHub · Vector35/binaryninja-api · 修订 14d46ea
- docs/dev/mcp-tools.md GitHub · Vector35/binaryninja-api · 修订 14d46ea
- https://github.com/Vector35/binaryninja-api/releases/tag/stable/6.0.10601