Первоначальный автор (ы) | Джордан Винс, Расти Вагнер, Питер ЛаФосс |
---|---|
Разработчик (и) | Vector 35 Inc |
Первоначальный выпуск | 31 июля 2016 г.; 4 года назад (31.07.2016) |
Стабильный выпуск | 2.1.2263 / 10 июля 2020 г.; 3 месяца назад (10.07.2020) |
Написано на | C ++, C, Python |
Операционная система | Microsoft Windows, Mac OS X и Linux |
Доступен на | английском языке |
Тип | Обратное проектирование, Дизассемблер, Декомпилятор |
Лицензия | Собственный |
Веб-сайт | https://binary.ninja/ |
Binary Ninja - это платформа обратного проектирования, разработанная Vector 35 Inc. Она может дизассемблировать двоичный файл и отображать разборку в линейном или графическом виде. Он выполняет автоматический глубокий анализ кода, генерируя информацию, которая помогает анализировать двоичный файл. Он переводит инструкции на промежуточные языки и в конечном итоге генерирует декомпилированный код.
Binary Ninja поддерживает различные архитектуры ЦП и двоичные исполняемые форматы. Он работает в Windows, macOS и Linux. У него также есть бесплатная облачная версия.
Binary Ninja изначально был внутренним инструментом команды CTF. Позже разработчики решили создать Vector 35 Inc и превратить Binary Ninja в коммерческий продукт. Разработка началась в 2015 году, а первая общедоступная версия была выпущена в июле 2016 года.
Коммерческий продукт не имеет общего кода с внутренним инструментом. Последний теперь имеет открытый исходный код под GPLv2.
Пользовательский интерфейс Binary Ninja построен на основе Qt (программное обеспечение). Его основной пользовательский интерфейс включает в себя список символов, окно перекрестных ссылок, линейное / графическое представление разборки, мини-график, а также карту функций. Он также может отображать шестнадцатеричный редактор, список строк и представление сортировки.
Binary Ninja генерирует обширные аннотации в пользовательском интерфейсе для помощи в двоичном анализе.
Binary Ninja также поддерживает пользовательские темы.
Binary Ninja предлагает API, к которому можно получить доступ через Python или С. API предоставляется с открытым исходным кодом под лицензией MIT. Он может взаимодействовать с большинством функций Binary Ninja, например, пользовательским интерфейсом, анализом, IL (см. Ниже) и т. Д. Его можно использовать для добавления поддержки новой архитектуры или автоматизации задач.
Плагины могут быть созданы через API для улучшения Binary Ninja. Vector35 поддерживает коллекцию официальных плагинов, в то время как сообщество создало множество плагинов сообщества.
Некоторые известные плагины - это отладчик, набор подписей и т. Д.
Binary Ninja предлагает три промежуточных языка (IL).
Binary Ninja выполняет автоматически различный анализ на двоичном. Вот некоторые примеры:
Binary Ninja предлагает удобный способ редактирования и исправления двоичного файла. Он может собрать инструкцию в текущей строке, перевернуть условный переход и т. Д. Изменения и обновленный анализ немедленно отражаются в пользовательском интерфейсе.
Кроме того, Binary Ninja можно использовать как обычный двоичный редактор. Он поддерживает несколько часто используемых преобразований и алгоритмов шифрования.
Компилятор шелл-кода позволяет пользователю компилировать и вставлять код с помощью синтаксиса C.
Binary Ninja официально поддерживает следующие архитектуры ЦП:
Поддержка этих архитектуры различаются, подробности можно найти в официальном FAQ.
Кроме того, сообщество также создало несколько архитектурных плагинов, которые поддерживают различные другие архитектуры.
Binary Ninja официально поддерживает следующие форматы исполняемых файлов: