Этот репозиторий содержит документацию и исходный код API C++, Python и Rust для платформы обратного проектирования Binary Ninja.
Онлайн-документация доступна для следующих API:
Чтобы создать API Binary Ninja, вам нужно будет использовать конкретную ревизию, соответствующую хешу из файла api_REVISION.txt
. Этот файл должен находиться в корневой папке установки для Linux и Windows или в подпапке Contents/Resources
приложения в macOS. Самый простой способ сделать это — клонировать этот репозиторий (или добавить его как подмодуль) и выполнить что-то вроде git checkout $(cat api_REVISION.txt | awk -F/ '{print $NF}')
. Документацию о том, как настроить это с помощью чего-то вроде cmake
можно найти здесь.
Чтобы написать плагины Binary Ninja с использованием C++, вам необходимо создать C++ API. Сборка библиотеки API выполняется аналогично большинству проектов на основе CMake; основные этапы изложены следующим образом:
# Get the source
git clone https://github.com/Vector35/binaryninja-api.git
cd binaryninja-api
git submodule update --init --recursive
# Configure an out-of-source build setup
cmake -S . -B build # (additional arguments go here if needed)
# Compile
cmake --build build -j8
В дополнение к настройке сборки по умолчанию вы можете:
-DBN_API_BUILD_EXAMPLES=ON
в CMake при настройке сборки. После успешной сборки вы можете установить встроенные плагины, запустив цель install
. При использовании генератора сборок «Unix Makefiles» это выглядит так: make install
.-DHEADLESS=ON
в CMake при настройке сборки.-DBN_INSTALL_DIR=/path/to/binaryninja
в CMake при настройке настройки сборки.LNK1107
могут указывать на несовпадение ваших битов. Существует множество примеров. В папке примеров Python демонстрируется множество различных применений API Python, а примеры C++ включают:
* Требуется лицензия, поддерживающая автономный доступ к API.
Система отслеживания проблем для этого репозитория отслеживает не только проблемы с исходным кодом, содержащимся здесь, но и более широкий продукт Binary Ninja.
Этот репозиторий имеет две основные ветки dev
и master
.
Ветка dev
содержит последние обновления и отслеживает последнюю версию разработки Binary Ninja; Запросы на включение должны быть сделаны в отношении этой ветки. master
ветка отслеживает стабильную сборку Binary Ninja. Если вы только что установили Binary Ninja в первый раз, скорее всего, вы находитесь на канале стабильной версии.
Общественные вклады приветствуются в этом репозитории. Большая часть API и документации в этом репозитории лицензируется по лицензии MIT, однако API взаимодействует с коммерческим приложением с закрытым исходным кодом Binary Ninja. Кроме того, Rust API лицензируется по лицензии Apache 2.0.
Если вы заинтересованы в том, чтобы внести свой вклад, при отправке своего первого PR вы получите уведомление от CLA Assistant, которое позволит вам подписать наше Лицензионное соглашение о вкладе онлайн.
Этот репозиторий содержит все плагины нашей платформы, доступные здесь:
Этот репозиторий содержит все плагины архитектуры, доступные в персональных и коммерческих версиях Binary Ninja. Вы можете найти каждую архитектуру здесь:
Этот репозиторий содержит все наши плагины типов двоичного представления, доступные здесь:
В дополнение к этому основному репозиторию API с открытым исходным кодом Vector35 также имеет открытый исходный код отладчика и плагинов Objective-C:
Некоторые компоненты могут быть выпущены под совместимыми, но немного отличающимися лицензиями с открытым исходным кодом и при необходимости иметь собственный файл ЛИЦЕНЗИИ.
Остальные компоненты выпускаются по лицензии MIT.
Обратите внимание, что файлы .lib
включены в собственные двоичные сборки Binary Ninja для Windows. Эти файлы lib также выпускаются под той же лицензией, что и этот репозиторий, и могут распространяться соответствующим образом.