
Плагин IDA для автоматического обнаружения обфусцированного кода и выравнивания потока управления в бинарных файлах с использованием эвристического анализа и визуализации дерева доминаторов.
Автор: mcdulltii
Автоматическое обнаружение обфусцированного кода и других конечных автоматов
Скрипты для автоматического обнаружения обфусцированного кода и конечных автоматов в бинарных файлах.
Реализация основана на IDA 7.4+ (Python3). Посмотрите следующие записи в блоге для получения дополнительной информации о реализации Binary Ninja:
Эвристические значения генерируются на основе указанных выше записей в блоге и сортируются (при запуске в режиме All Functions) сверху вниз на основе их эвристической сложности.
Из-за рекурсивного характера построения дерева доминаторов для каждой найденной функции в бинарном файле реализация и накладные расходы времени выполнения являются дорогостоящими, хотя была реализована многопоточность.
Используя PyQt для визуализации плагина, пользователи могут дополнительно настраивать эвристический анализ функций в бинарном файле.
PyQt5
Скопируйте каталог obfDetect и файл obfDetect.py в каталог плагинов IDA.
Когда IDA успешно завершит загрузку бинарного файла, скрипт выведет свой баннер в консоль IDC/Python.
Скрипт можно запустить через панель инструментов File, как показано ниже. Или с помощью Ctrl-Shift-H.

Имена функций в выходной таблице можно переименовывать с помощью n, что обновит имена функций в IDA, заданные по адресу функции
При нажатии на поле ввода имени файла экспорта откроется всплывающее окно выбора файла, в котором можно перейти к пользовательскому расположению для сохранения.
Run, чтобы начать анализExport filename для выбора места экспорта, затем нажмите кнопку Export, чтобы экспортировать таблицу в формат csv

