
Инструмент статической бинарной инструментации, который извлекает COFF-объектные файлы из исполняемых файлов, позволяя вставлять код/данные в любое место для фаззинга «чёрного ящика» и бинарного патчинга через IDA Pro.
IDA2Obj — это инструмент для реализации SBI (Static Binary Instrumentation).
Рабочий процесс прост:
Подготовьте среду:
AUTOIMPORT_COMPAT_IDA695 = YES в файле idapython.cfg для поддержки API в стиле старой IDA 6.x.pip install coughСоздайте папку в качестве рабочей области.
Скопируйте целевой бинарный файл, который вы хотите фаззить, в рабочую область.
Загрузите бинарный файл в IDA Pro, выберите Load resources и manually load, чтобы загрузить все сегменты из бинарного файла.
Дождитесь завершения автоматического анализа.
Выполните дамп объектных файлов, запустив скрипт MagicIDA/main.py.
${workspace}/${module}/objs/afl.TRACE_MODE в рабочей области, выходные объектные файлы будут находиться в ${workspace}/${module}/objs/trace.${workspace}/${module}:
Сгенерируйте lib-файлы, запустив скрипт utils/LibImports.py.
${workspace}/${module}/libs, они используются для последующей линковки.Откройте терминал и перейдите в рабочую область.
Свяжите все объектные файлы и lib-файлы с помощью utils/link.bat.
utils/link.bat GdiPlus dll afl /RELEASE${workspace}/${module}.Примените патч к только что собранному бинарному файлу с помощью utils/PatchPEHeader.py.
utils/PatchPEHeader.py GdiPlus/GdiPlus.afl.dllutils/register_msdia_run_as_administrator.bat от имени администратора.Запустите и фаззьте.
Слайды HITB : https://github.com/jhftss/jhftss.github.io/blob/main/res/slides/HITB2021SIN%20-%20IDA2Obj%20-%20Mickey%20Jin.pdf
Демо : https://drive.google.com/file/d/1N3DXJCts5jG0Y5B92CrJOTIHedWyEQKr/view?usp=sharing