
Плагин, предоставляющий ресурсы для новичков по изучению реверс-инжиниринга с помощью Binary Ninja. Он автоматически устанавливает несколько других плагинов и включает примеры, демонстрирующие возможности этих плагинов.
Обучающие инструменты для Binary Ninja
Этот плагин предоставляет новичкам ресурсы для изучения реверс-инжиниринга с помощью Binary Ninja. Он автоматически устанавливает несколько других плагинов и содержит примеры, демонстрирующие возможности этих плагинов.
Этот проект — результат летней стажёрской программы NCC Group 2017 года. Дальнейшие обновления будут отслеживаться на https://github.com/ehennenfent/binja_sensei. NCC Group не несёт ответственности за любые дальнейшие изменения репозитория после 18 августа 2017 года.
Чтобы застраховаться на будущее, Binja Sensei устанавливает плагины через ещё незавершённый API менеджера плагинов. Поскольку у менеджера плагинов сейчас нет графического интерфейса, установка выполняется запуском следующего фрагмента кода в консоли скриптов Binary Ninja (доступ через Ctrl+`).
manager = RepositoryManager()
manager.enable_plugin('binja_sensei', install=True)
Примечание: В зависимости от того, когда вы установили Binja, вам может потребоваться выполнить manager.check_for_updates() и перезапустить Binja, чтобы этот плагин появился. Я настоятельно рекомендую устанавливать на свежую виртуальную машину.
Если вы запускаете это до 31 августа 2017 года, вам нужно использовать версию Binary Ninja для разработчиков, поскольку установка зависимостей опирается на b0778fc и 326253a.
Затем перезапустите Binary Ninja. При загрузке Sensei обновит все встроенные плагины до последней версии и установит все зависимости Python для каждого плагина. Он не будет автоматически запускать скрипты установки, поэтому если вы используете Ubuntu и планируете настроить binja_dynamics, вам нужно перейти в ~/.binaryninja/repositories/default/plugins/binja_dynamics и выполнить ./install.sh.
Если какая-либо из установок плагинов завершится ошибкой, ручная установка может оказаться более успешной. Пока не решён Issue #753, некоторые плагины, зависящие от абсолютных путей к файлам, могут не работать без ручной установки. Для ручной установки скопируйте соответствующие ссылки на репозитории ниже и клонируйте их в ваш каталог плагинов.
https://github.com/carstein/Annotator.git
https://github.com/ehennenfent/binja_arch_ref.git
https://github.com/ehennenfent/binja_dynamics.git
https://github.com/ehennenfent/binja_explain_instruction.git
https://github.com/carstein/Syscaller.git
Обратите внимание, что встроенные инструменты остаются собственностью их соответствующих авторов. Хотя этот плагин распространяется под лицензией MIT, эта лицензия не распространяется ни на один из плагинов ниже.
Чтобы продемонстрировать возможные варианты использования этих плагинов, включены решения пяти задач на переполнение из PicoCTF 2013. Обратите внимание, что с момента создания разборов могли быть внесены незначительные изменения в функциональность, цветовую схему и исправления ошибок.
Annotator использует виртуальный стек для аннотирования вызовов функций libc прототипами аргументов.

Этот плагин отображает шпаргалку с внутренней информацией Binary Ninja об архитектуре.

Этот плагин добавляет Qt-интерфейс к Binjatron, включая подсветку, призванную помочь новичкам находить важные участки памяти.

Добавляет всплывающее окно, которое простыми словами объясняет, что делает инструкция ассемблера.

Аннотирует системные вызовы аргументами.
