Skip to content

Public API, examples, documentation and issues for Binary Ninja

License

Notifications You must be signed in to change notification settings

defunctio/binaryninja-api

This branch is 3843 commits behind Vector35/binaryninja-api:dev.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bb1fe1d · Jan 27, 2020
Jan 16, 2020
Jan 27, 2020
Nov 25, 2019
Oct 18, 2018
Jan 27, 2020
Sep 20, 2019
Dec 18, 2019
May 11, 2019
Dec 19, 2019
Jun 26, 2018
Jan 20, 2020
Jul 24, 2016
Nov 25, 2019
May 31, 2019
Feb 27, 2019
Jan 1, 2020
Jul 16, 2018
Mar 15, 2017
Oct 8, 2018
Jan 1, 2020
Jan 14, 2018
Jan 16, 2020
Jan 1, 2020
Jan 20, 2020
Jan 20, 2020
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Dec 13, 2019
May 19, 2017
May 10, 2019
Jun 29, 2016
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Jan 20, 2020
Jan 1, 2020
Nov 28, 2018
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Mar 20, 2019
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Oct 19, 2018
Jan 24, 2020
Jan 1, 2020
Jan 1, 2020
Jul 9, 2019
Oct 28, 2019
Jan 1, 2020
Jul 29, 2019
Sep 22, 2019
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020
Jan 1, 2020

Repository files navigation

slack

Binary Ninja API

This repository contains documentation and source code for the Binary Ninja reverse engineering platform API.

Branches

Please note that the dev branch tracks changes on the dev build of binary ninja and is generally the place where all pull requests should be submitted to. However, the master branch tracks the stable build of Binary Ninja which is the default version run after installation. Online documentation tracks the stable branch.

Contributing

Public contributions are welcome to this repository. All the API and documentation in this repository is licensed under an MIT license, however, the API interfaces with a closed-source commercial application, Binary Ninja.

If you're interested in contributing when you submit your first PR, you'll receive a notice from CLA Assistant that allows you to sign our Contribution License Agreement online.

Issues

The issue tracker for this repository tracks not only issues with the source code contained here but also the broader Binary Ninja product.

Building

Starting mid March 2017, the C++ portion of this API can be built into a static library (.a, .lib) that binary plugins can link against. Use Makefile on MacOS, Linux, and Windows mingw environments, and Makefile.win (nmake file) for Windows Visual Studio environment (nmake -f).

The compiled API contains names and functions you can use from your plugins, but most of the implementation is missing until you link up against libbinaryninjacore.dylib or libbinaryninjacore.dll (via import file libbinaryninjacore.lib). See the ./examples.

Since BinaryNinja is a 64-bit only product, ensure that you are using a 64-bit compiling and linking environment. Errors on windows like LNK1107 might indicate that your bits don't match.

Examples

  • bin-info is a standalone executable that prints some information about a given binary to stdout
  • breakpoint is a plugin that allows you to select a region within an x86 binary and use the context menu to fill it with breakpoint bytes
  • print_syscalls is a standalone executable that prints the syscalls used in a given binary

About

Public API, examples, documentation and issues for Binary Ninja

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 62.3%
  • C++ 33.2%
  • C 4.1%
  • Makefile 0.2%
  • Batchfile 0.1%
  • Shell 0.1%