Tool

Binary Ninja API

Vector 35’s public C++, Python and Rust APIs for Binary Ninja, with their documentation, examples and the open-source plugins built on them. Binary Ninja itself is a closed-source commercial application, and this repository does not contain its analysis core. The open plugins cover the x86/x86_64, ARM64, ARMv7, PowerPC, MIPS, RISC-V and MSP430 architectures, ELF, PE/COFF, Mach-O and Apple shared-cache and kernel-cache loaders, DWARF, PDB and IDB import, and Objective-C, RTTI and SVD analysis, while the examples walk the low- and medium-level intermediate languages and extend the analysis pipeline through workflows.

Requirements and limitations

  • The dev branch tracks Binary Ninja development builds. The newest release in this repository at review is stable/6.0.10601, published 2026-09-03, whose assets are Binary Ninja Free installers; the reviewed dev commit is 165 commits ahead of it, and dev-only material such as the guide to plugin-registered MCP tools is not in that release. The README says master tracks the stable build, but master was last updated in August 2024.
  • The API does not run on its own: plugins and scripts load the closed-source core from an installed copy of Binary Ninja. C++ plugins must be built from the API revision named in the installation’s api_REVISION.txt, and the install_api.py script shipped with the installation adds the Python module to another interpreter. The standalone examples and other headless scripts need a license with headless API access; the plugin guide says non-commercial licenses lack headless automation and names the Commercial and Ultimate editions for it.
  • CMakeLists.txt requires CMake 3.28+, a 64-bit C++20 toolchain and a Python 3.12+ interpreter. UI plugins need Qt 6.8.2, which the README recommends taking from the official installer or Vector 35’s Qt build rather than Homebrew, and -DHEADLESS=ON skips them. The Rust crate declares rust-version 1.98.1.
  • Most of the API and documentation is MIT-licensed and the Rust API is Apache-2.0; some components carry their own license files, and contributions go through Vector 35’s CLA. These licenses cover the API layer only and do not make Binary Ninja open source. The repository’s issue tracker also serves the wider product. No plugin was built and no binary was analyzed.

About this entry

Type
Tool
Category
Native analysis tools
Relationship
Foundation tool
Targets
Binary · Firmware

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. README.md GitHub · Vector35/binaryninja-api · Revision 14d46ea
  2. README.md#L17-L45 GitHub · Vector35/binaryninja-api · Revision 14d46ea
  3. README.md#L74-L78 GitHub · Vector35/binaryninja-api · Revision 14d46ea
  4. README.md#L140-L146 GitHub · Vector35/binaryninja-api · Revision 14d46ea
  5. CMakeLists.txt GitHub · Vector35/binaryninja-api · Revision 14d46ea
  6. rust/Cargo.toml GitHub · Vector35/binaryninja-api · Revision 14d46ea
  7. LICENSE.txt GitHub · Vector35/binaryninja-api · Revision 14d46ea
  8. rust/LICENSE GitHub · Vector35/binaryninja-api · Revision 14d46ea
  9. docs/dev/plugins.md#L57-L75 GitHub · Vector35/binaryninja-api · Revision 14d46ea
  10. docs/dev/mcp-tools.md GitHub · Vector35/binaryninja-api · Revision 14d46ea
  11. https://github.com/Vector35/binaryninja-api/releases/tag/stable/6.0.10601