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

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

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

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

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

Категории

Все категории
Loading categories
BinDiffHelper — Расширение Ghidra для интеграции BinDiff для сопоставления функций | Kitploit
Инструменты/GitHubGitHub/ubfx/bindiffhelper
Статический анализАнализ КодаОбратная инженерияАнализ вредоносных программУтилиты и фреймворкиАнализ Бинарных ФайловЭксплуатация Бинарных Файлов
GitHububfx/bindiffhelper

BinDiffHelper

Расширение Ghidra для интеграции BinDiff для сопоставления функций

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

Популярное

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

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

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

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

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

BinDiffHelper

Расширение Ghidra, которое использует BinDiff в вашем проекте Ghidra для поиска совпадающих функций и их автоматического переименования (поддерживаются BinDiff 6, 7, 8). Ознакомьтесь с руководством BinDiff, чтобы понять, как это работает и как сопоставляются функции / базовые блоки. Однако с этим расширением BinDiff автоматизирован изнутри Ghidra, так что вам не нужно самостоятельно выполнять diff ваших бинарников.

Пожалуйста, сообщайте об ошибках через функцию issues на github

Список изменений

v0.7.1

  • Обновление для Ghidra 12

v0.7.0 (версии Ghidra >= 11.4)

  • Изменений нет, кроме совместимости с версией Ghidra

v0.6.4 (версии Ghidra < 11.4)

  • Поддержка экспорта пространств имён
  • Исправлено бесконечное зависание при diffing

v0.6.3

  • Разрешена сортировка таблицы

v0.6.2

  • Исправлена ошибка, из-за которой diffing зависал навсегда в BinDiff 8
  • При двойном щелчке по символу происходит переход к нему как в основном, так и во вторичном листинге кода

v0.6

  • Обновлена библиотека драйвера sqlite, теперь должна работать на Apple silicon
  • Поддержка внешних текстовых diff между декомпилированными функциями (см. https://github.com/ubfx/BinDiffHelper/pull/24)
  • Обновления UI

v0.5

  • Поддержка BinDiff 8
  • Релиз для Ghidra 11.1
Более старые изменения ### v0.4.3 * Релиз для Ghidra 11.0

v0.4.2

  • Добавлена функция импорта всех функций (не только отмеченных в таблице)
  • Добавлена функция переключения флажка для нескольких элементов в таблице
  • Обновление для поддержки Ghidra 10.3

v0.4.1

  • Обновление для поддержки Gradle 7.5 и Ghidra 10.1

v0.4.0

  • Поддержка BinDiff 7 и Ghidra 10

v0.3.2

  • Исправлена ошибка, из-за которой diffing с другим файлом из того же проекта не работал
  • Исправлена ошибка, из-за которой файлы с короткими именами (< 3 символов>) не могли быть подвергнуты diffing

v0.3.1

  • Исправлено падение при открытии файла через опцию "from project"

v0.3

  • Раскраска совпавших функций в листинге
  • Добавление комментариев к совпавшим функциям в листинге со ссылкой на другой бинарник
  • Исправлена ошибка, из-за которой библиотека protobuf отсутствовала в некоторых сборках
  • Новое меню загрузки файлов

v0.2

  • Исправлена ошибка, из-за которой файл для импорта нужно было извлекать (check out).
  • Увеличен размер диалогового окна выбора файла проекта

v0.1

  • BinDiff бинарника, открытого в Ghidra, с другим бинарником из того же проекта Ghidra, показ результатов и импорт имён функций
  • Открытие файла BinDiff, созданного с помощью BinDiff 6, из двух файлов .BinExport и импорт совпадающих имён функций в Ghidra

Как установить

Либо скачайте .zip-файл из релиза, если он совместим с вашей версией Ghidra, иначе см. Как собрать ниже.

  1. Откройте Ghidra
  2. В Main Window: перейдите в File->Install Extensions...
  3. Нажмите кнопку + в правом верхнем углу и выберите zip-файл BinDiffHelper
  4. Закройте менеджер плагинов. Перезапустите Ghidra, чтобы загрузить новый плагин
  5. См. Использование ниже

Рекомендуемые другие инструменты

  • Плагин BinExport бинарники или скомпилированный из исходников для вашей конкретной версии Ghidra
  • BinDiff (https://zynamics.com/software.html)

Без них вы сможете только импортировать файлы .BinDiff, но не автоматически экспортировать и выполнять diff из вашего проекта Ghidra

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

Убедитесь, что плагин загружен в Code Explorer, открыв файл в Ghidra и в Code Explorer перейдя в File->Configure

Нажмите маленькую иконку вилки в правом верхнем углу:

Configure tool

и убедитесь, что флажок рядом с BinDiffHelperPlugin установлен.

Configure plugins

Импорт внешнего .BinDiff

Соответствующие файлы .BinExport должны находиться в той же папке.

Откройте файл, в который вы хотите импортировать имена, в Code Browser, затем перейдите в Window->BinDiffHelper Open BinDiffHelper

Используйте кнопку Open from BinDiff или пункт меню и выберите ваш файл .BinDiff.

Example import

Выберите все имена функций, которые хотите импортировать, и нажмите кнопку Import function names в правом верхнем углу или соответствующий пункт меню.

Сравнение между файлами в проекте Ghidra

Перейдите в Window->BinDiffHelper, убедитесь, что нет предупреждений, касающихся BinExport или BinDiff, затем нажмите кнопку Open from project.

Выберите другой файл из дерева и нажмите OK.

Example project import

Как собрать

Требования:

  • Установка Ghidra (https://ghidra-sre.org) или скомпилированная из исходников
  • Какой-либо jdk. Могут быть определённые ограничения в зависимости от того, как была собрана ваша Ghidra и какие другие плагины вы используете. Я рекомендую использовать Temurin 21 LTS, так как на данный момент он, похоже, работает как с BinExport, так и с BinDiffHelper.
  • gradle (протестировано с 7.5, 8.10)

Клонирование репозитория

Клонируйте репозиторий рекурсивно, так как он зависит от BinExport для соответствующего определения protocol buffer.

git clone --recurse-submodules https://github.com/ubfx/BinDiffHelper.git

Сборка

Вам нужно установить переменную окружения GHIDRA_INSTALL_DIR в каталог установки Ghidra. Если у вас установлены разные JDK, убедитесь, что переменная окружения JAVA_HOME указывает на тот, который использует ваша установка Ghidra.

Расширение будет собрано именно для этой версии Ghidra.

Затем перейдите в папку BinDiffHelper в вашей оболочке и выполните

gradle

Это соберёт как BinExport в соответствующем подмодуле, так и BinDiffHelper в родительском каталоге. В каталоге dist должен быть создан .zip-файл. Используйте этот .zip-файл для установки согласно инструкциям выше.

Настройка для разработки / отладки

Иногда полезно иметь возможность отлаживать расширение вместе с Ghidra, вот несколько заметок об этом:

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