Bindiffhelper
Расширение Ghidra, которое использует Bindiff в вашем проекте Ghidra, чтобы найти соответствующие функции и автоматически переименовать их (Bindiff 6, 7, 8 поддерживается). Проверьте руководство Bindiff, чтобы увидеть, как оно работает и как оно соответствует функциям / основным блокам. Однако, с этим расширением, Бинфиф автоматизирован из Ghidra, поэтому вам не нужно сами различать свои двоичные файлы.
Пожалуйста, сообщите об ошибках через функцию выпуска на GitHub
Что он делает / изменяет
v0.6
- Обновление библиотеки драйверов SQLite, теперь должна работать на Apple Silicon
- Поддержать внешние текстовые различия между декомпилированными функциями (см. #24)
- Обновления пользовательского интерфейса
v0.5
- Поддержка Bindiff 8
- Выпуск для Ghidra 11.1
V0.4.3
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
- Исправлена ошибка, в которой не сработала с другим файлом из того же проекта, не работал
- Исправлена ошибка, в которой файлы с короткими именами (<3 символов>) не могут быть разнообразны
V0.3.1
- Исправлена аварий при открытии файла с помощью опции "From Project"
v0.3
- Раскраски соответствуют функциям в списке
- Добавьте комментарии к соответствующим функциям в списке, связывающемся с другим бинарным
- Исправлена ошибка, где библиотека Protobuf отсутствовала в некоторых сборках
- Новое меню загрузки файлов
v0.2
- Исправьте ошибку, при которой файл для импорта необходимо проверить.
- Увеличение размера диалога выбора файлов проекта
v0.1
- Bindiff Бинарник открылся в Ghidra с другим бинарным из того же проекта Ghidra, показать результаты и названия функций импорта
- Откройте файл Bindiff, созданный с Bindiff 6, из двух файлов .binexport и импортируйте имена функций сопоставления в Ghidra
Следующие выпуска
- Импорт имена функций и параметры функции (тип и имя)
- Сравните бинарную открытую в Ghidra с внешним .binexport (например, из IDA)
- Связь с графическим интерфейсом Bindiff 6, чтобы показать графики для различных функций
Как установить
Либо загрузите .zip-файл из релиза, если он совместим с вашей версией Ghidra, в противном случае посмотрите , как построить ниже.
- Открыть Гидру
- В главном окне : перейдите в File-> Установить расширения ...
- Нажмите на +-Button в правом верхнем углу и выберите файл Zip BindiffHelper
- Закройте менеджер плагинов. Перезапустите Ghidra, чтобы загрузить новый плагин
- Смотрите использование ниже
Рекомендуются другие инструменты
- Binexport плагин двоичные файлы или составлено из источника для вашей конкретной версии Ghidra
- Bindiff (https://zynamics.com/software.html)
Без них вы сможете только импортировать файлы. Биндифф, а не автоматически экспортировать и отличаться от своего проекта Ghidra
Использование
Убедитесь, что плагин загружен в кодовом исследователе путем открытия файла в Ghidra и в кодовом исследователе перейдите в File-> Configure
Нажмите на небольшой плагин в правом верхнем углу:
И убедитесь, что флажок рядом с Bindiffhelperplugin проверяется.
Импорт внешний .bindiff
Соответствующие. Binexport-Files должны быть в одной и той же папке.
Откройте файл, в который вы хотите импортировать имена в браузере кода, затем перейдите в Window-> BindiffHelper
Используйте кнопку Open от Bindiff или элемент меню и выберите свой файл .Bindiff.
Выберите все имена функций, которые вы хотите импортировать, и нажмите кнопку «Импорт функций» в правом верхнем правом или элементе меню.
Сравните между файлами в проекте Ghidra
Перейдите в Window-> BindiffHelper , убедитесь, что нет никаких предупреждений о Binexport или Bindiff, затем нажмите кнопку « Открыть из проекта» .
Выберите другой файл из дерева и нажмите ОК.
Как построить
Требования:
- Установка Ghidra (https://ghidra-sre.org) или составлена из источника
- Немного JDK. Могут быть определенные ограничения в зависимости от того, как была построена ваша Ghidra и какие еще плагины вы используете. Я рекомендую использовать Temurin 21 LTS, так как в настоящее время это работает как с Binexport, так и с Bindiffhelper.
- Gradle (проверка с 7,5, 8,10)
Клонировать репозиторий
Рекурсивно клонировать репозиторий, так как он зависит от Bunexport для соответствующего определения буфера протокола.
git clone --recurse-submodules https://github.com/ubfx/BinDiffHelper.git
Построить это
Вам необходимо установить переменную среды GHIDRA_INSTALL_DIR в режиме установки Ghidra. Если у вас установлены разные JDK, убедитесь, что переменная среды JAVA_HOME указывает на то, что использует ваша установка Ghidra.
Расширение будет построено для этой версии Ghidra.
А затем перейдите в папку BindiffHelper в своей раковине и
Это построит как Binexport в соответствующем подмодуле, так и в Bindiffhelper в родительском каталоге. Должен был быть создан .zip-файл, созданный в дистанционном каталоге. Используйте этот файл .zip для установки в соответствии с указаниями выше.
Настройка разработки / отладки
Иногда полезно иметь возможность отлаживать расширение вместе с Ghidra, вот несколько заметок об этом:
- Клонировать и построить ghidra и позвольте Градли создать проекты Eclipse в соответствии с DevGuide
- Импортировать проекты в Eclipse (убедитесь, что у него есть соответствующие плагины для разработки расширения)
- Стройте и установите ghidradev
- Распакуйте Ghidra построить и связать Ghidradev с ним. Может быть, придется установить переменную среды
GHIDRA_INSTALL_DIR - Запустите Ghidra от Eclipse и установите расширение Binexport
- Создать проект Bindiffhelper Eclipse с
gradle build eclipse - Импортируйте его в Eclipse и используйте ghidradev, чтобы связать его с сборкой Ghidra
- Отладка as-> ghidra
При отладте Ghidra с расширением от Eclipse расширение загружается в Ghidra автоматически (не проходите обычную установку расширения). Тем не менее, плагин должен быть включен в код Explorer.
Ссылки
- https://github.com/google/bindiff/releases
- https://www.zynamics.com/bindiff/manual/
- https://github.com/google/binexport/
Иконки от: Fatcow Free иконки