
Outil d'instrumentation binaire statique qui extrait des fichiers objets COFF depuis des exécutables, permettant l'insertion de code/données à n'importe quel emplacement pour le fuzzing en boîte noire et le patching binaire via IDA Pro.
IDA2Obj est un outil pour implémenter SBI (Static Binary Instrumentation).
Le flux de travail est simple :
Préparer l'environnement :
AUTOIMPORT_COMPAT_IDA695 = YES dans le fichier idapython.cfg pour prendre en charge l'API avec l'ancien style IDA 6.x.pip install coughCréer un dossier comme espace de travail.
Copier le binaire cible que vous souhaitez fuzzer dans l'espace de travail.
Charger le binaire dans IDA Pro, choisir Load resources et manually load pour charger tous les segments du binaire.
Attendre la fin de l'analyse automatique.
Extraire les fichiers objets en exécutant le script MagicIDA/main.py.
${workspace}/${module}/objs/afl.TRACE_MODE dans l'espace de travail, alors les fichiers objets de sortie seront dans ${workspace}/${module}/objs/trace.${workspace}/${module} :
Générer les fichiers lib en exécutant le script utils/LibImports.py.
${workspace}/${module}/libs, utilisés plus tard pour l'édition de liens.Ouvrir un terminal et changer de répertoire vers l'espace de travail.
Lier tous les fichiers objets et fichiers lib en utilisant utils/link.bat.
utils/link.bat GdiPlus dll afl /RELEASE${workspace}/${module}.Patcher le nouveau binaire construit en utilisant utils/PatchPEHeader.py.
utils/PatchPEHeader.py GdiPlus/GdiPlus.afl.dllutils/register_msdia_run_as_administrator.bat en tant qu'administrateur.Exécuter & Fuzzer.
Slides HITB : https://github.com/jhftss/jhftss.github.io/blob/main/res/slides/HITB2021SIN%20-%20IDA2Obj%20-%20Mickey%20Jin.pdf
Démo : https://drive.google.com/file/d/1N3DXJCts5jG0Y5B92CrJOTIHedWyEQKr/view?usp=sharing