Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
binja_dynamics — Интерфейс на PyQt5 для плагина binjatron для Binary Ninja, включающий функции подсветки, призванные облегчить новичкам изучение реверс-инжиниринга. | Kitploit
Инструменты/GitHubGitHub/nccgroup/binja_dynamics
Динамический анализ (песочница)Обратная инженерияОтладчикиАнализ Бинарных ФайловОбучение и Образование
GitHubnccgroup/binja_dynamics

binja_dynamics

Интерфейс на PyQt5 для плагина binjatron для Binary Ninja, включающий функции подсветки, призванные облегчить новичкам изучение реверс-инжиниринга.

Репозиторий
2569 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Инструменты динамического анализа Binary Ninja

Этот проект добавляет PyQt5-интерфейс к плагину binjatron для Binary Ninja, включающий функции подсветки, призванные облегчить новичкам изучение реверс-инжиниринга.

Мотивация

Умение реверсировать x86-бинарные файлы — важный навык даже за пределами индустрии информационной безопасности. Однако, несмотря на обилие доступных учебных материалов, овладеть им по-прежнему сложно. Многие студенты выражали разочарование по поводу объёма фоновых знаний, необходимых даже для скромного прогресса в работе с простыми бинарными файлами.

Binary Ninja часто рекламируют для студентов благодаря относительно низкой цене, чистому интерфейсу и простоте использования. Промежуточные языки низкого и среднего уровня также дают простой способ понять, что делают инструкции. Этот проект направлен на то, чтобы сделать Binary Ninja ещё более удобным инструментом для новичков, упростив визуализацию выполнения бинарного файла.

Компоненты

  • Отладка через Binjatron
  • Панель инструментов отладчика
  • Просмотр регистров
  • Просмотр стека
  • Просмотр backtrace

Происхождение

Этот проект является результатом программы летней стажировки NCC Group 2017 года. Компоненты визуальной отладки можно считать духовным преемником Microcorruption — CTF по безопасности встраиваемых систем, созданного Matasano Security. Дальнейшие обновления будут отслеживаться на https://github.com/ehennenfent/binja_dynamics. NCC Group не несёт ответственности за любые дальнейшие изменения, внесённые в репозиторий после 18 августа 2017 года.

Установка

В вашей папке плагинов Binary Ninja выполните:

root@kitploit:~
git clone https://github.com/ehennenfent/binja_dynamics.git
cd binja_dynamics
./install.sh

Использование

После загрузки бинарного файла нажмите пункт Enable Dynamic Analysis Tools в меню Tools. Появится окно отладчика, которым можно управлять с помощью кнопок на панели инструментов. По мере пошагового выполнения интерфейс будет обновляться в реальном времени, отражая состояние программы. Благодаря Binjatron текущая инструкция и все точки останова подсвечиваются в представлении бинарного файла. Для каждого адреса памяти и регистра значение подсвечивается оранжевым, если оно изменилось в результате предыдущей инструкции. Аналогичным образом верх и низ текущего кадра стека (а также предполагаемое расположение адреса возврата) подсвечиваются, чтобы новичкам было проще понять, на какие участки памяти стоит обращать внимание. Окно backtrace отображает обратную трассировку текущих кадров стека и предоставляет кнопку, которая автоматически переводит представление бинарного файла к адресу памяти, где плагин ожидает найти адрес возврата. В некоторых функциях кадр стека разрушается не так, как ожидает плагин, поэтому предсказанный адрес возврата не всегда может быть верным.

Screenshot

Подсветка

(На скриншоте выше базовый указатель показан оливково-зелёным)

  • Текущая инструкция — красный
  • Точка останова — синий
  • Изменённая память или регистр — оранжевый текст
  • Указатель стека — светло-зелёный
  • Базовый указатель — светло-голубой
  • Предсказанный адрес возврата — красный
  • Указатель инструкций (где применимо) — ярко-красный

Документация

Код

Иногда может потребоваться обратиться к исходному коду, чтобы понять точное поведение интерфейсов. Предвидя это, многие проектные решения и детали реализации поясняются во встроенных комментариях.

Вики

Вики-страница пока ещё довольно скудная, но такие материалы, как список трудностей и журнал разработки, могут пригодиться при поиске решений проблем.

Примеры

Рекомендуем ознакомиться с репозиторием binja_sensei — приведённые там примеры могут помочь вам начать работу.

Текущие ограничения

  • В настоящее время поддерживаются только бинарные файлы x86(64) Linux. Даже с учётом этого ограничения могут встречаться бинарные файлы, ведущие себя так, что binja_dynamics или Voltron не смогут с ними справиться. Рекомендуется отправлять пул-реквесты или создавать issue с любыми ошибками, с которыми вы столкнулись.
  • binja_dynamics тестировался только на Ubuntu 16.04. Поддержка Windows, скорее всего, невозможна из-за особенностей перенаправления терминала, но на других unix-платформах, возможно, удастся добиться приемлемой функциональности. Ещё раз: пул-реквесты и issue приветствуются.
  • Поскольку Binary Ninja и binjatron основаны на Python 2.7, версию GDB, поставляемую с Ubuntu, перед установкой binja_dynamics необходимо заменить на версию, поддерживающую Python 2.7. Установочный скрипт успешно делает это на чистой виртуальной машине Ubuntu 16.04, но обновления GDB, обновления Ubuntu или предустановленные компоненты (если вы устанавливаете не на чистую VM) могут нарушить его работу.
  • Из соображений производительности просмотр памяти отображает только содержимое сегментов стека и BSS.
  • Дополнительную информацию см. в Issues

Сторонние материалы

  • binja_dynamics использует форк проекта qthexedit, который распространяется под лицензией GPLv2.
  • Изображения, используемые для иконок, распространяются по лицензии Creative Commons. Информацию об источниках см. в attribution.txt.

Требования

  • binjatron
  • binja_toolbar
  • binja_spawn_terminal
  • voltron
  • PyQt5
  • Binary Ninja

За исключением Binary Ninja, install.sh установит все эти зависимости за вас.

Скачать инструмент