Этот репозиторий содержит коллекцию скриптов и плагинов IDA Pro, используемых командой FireEye Labs Advanced Reverse Engineering (FLARE).
Для установки скопируйте содержимое каталога плагинов из этого репозитория в папку %PROGRAMFILES%IDAplugins.
Каталог Python можно скопировать в папку %PROGRAMFILES%IDApython или изменить переменную среды PYTHONPATH, включив в нее этот каталог.
Плагин IDA shellcode_hashes_search_plugin.py реализует поиск по хешу, описанный здесь: https://www.mandiant.com/blog/precalculated-string-hashes-reverse-engineering-shellcode/.
Каталог shellcode_hashes содержит сценарий, используемый для создания базы данных для сценария shellcode_hash_search.py, а также предоставленную базу данных.
Плагин struct_typer_plugin.py реализует типизацию структуры, описанную здесь: https://www.mandiant.com/blog/applying-function-types-structure-fields-ida/
Stackstrings_plugin.py реализует восстановление строк, созданных вручную, описанных здесь: http://www.fireeye.com/blog/threat-research/2014/08/flare-ida-pro-script-series-automatic-recovery-of- построенные строки-в-malware.html
Этот сценарий для IDA Pro добавляет информацию MSDN из XML-файла в базу данных. Информацию об этом плагине можно найти по адресу: https://www.fireeye.com/blog/threat-research/2014/09/flare-ida-pro-script-series-msdn-annotations-ida-pro-for-malware. -anaанализ.html
Включен следующий функционал:
TL;DR: В IDA запустите annotate_IDB_MSDN.py .
Все файлы (скрипты IDAPython, анализатор XML, XML-файл с информацией MSDN и т. д.) должны располагаться в одном каталоге, доступном для IDA Pro. В IDA используйте Файл — Файл сценария... (ALT + F7), чтобы открыть annotate_IDB_MSDN.py . Форма позволит вам изменить настройки и аннотировать файл IDB после того, как вы нажмете «ОК».
После однократного выполнения сценария также можно использовать «Просмотр» — «Недавние сценарии» (ALT + F9).
Этот плагин позволяет вам указать или выбрать тип функции для непрямых вызовов, как описано здесь: https://www.fireeye.com/blog/threat-research/2015/04/flare_ida_pro_script.html.
Этот сценарий позволяет легко генерировать шаблоны функций из существующей базы данных IDB, которые затем можно превратить в сигнатуры FLIRT, чтобы помочь идентифицировать аналогичные функции в новых файлах. Дополнительную информацию можно найти по адресу: https://www.fireeye.com/blog/threat-research/2015/01/flare_ida_pro_script.html.
Эта утилита может помочь вам идентифицировать статические аргументы функций, используемых в программе. Чаще всего это используется для извлечения аргументов функций декодера строк. Пример использования доступен в
Сообщение в блоге с дополнительной информацией доступно по адресу:
https://www.fireeye.com/blog/threat-research/2015/11/flare_ida_pro_script.html
Этот сценарий создает перекрестные ссылки между ссылками на селекторы и их реализациями, как определено в разделах, связанных со средой выполнения Objective-C, целевого исполняемого файла Mach-O. Он также исправляет указатели ссылок на селекторы, чтобы они вместо этого указывали на их функцию реализации. Это упрощает анализ кода Objective-C, обеспечивая плавные переходы между реализацией и местами, на которые ссылается ее селектор по всему коду. К каждому вызову вариантов objc_msgSend добавляются полезные комментарии к коду Objective-C, чтобы четко указать, какой метод в каком классе вызывается.
ironstrings.py
— это сценарий IDAPython, который использует эмуляцию кода для восстановления построенных строк (строок стека) от вредоносного ПО. Подробности см. в README сценария.
code_grafter.py
— это сценарий IDAPython, который переносит код в базу данных IDA для реализации различных импортируемых функций и увеличивает вероятность выполнения распаковщика или декодера полностью под Bochs (или любыми другими инструментами эмуляции, которые не реализуют специальную обработку для этих функций). функции). Это предотвращает ошибки, когда эмулируемое выполнение достигает таких функций, как VirtualAlloc
или lstrlenA
.