
Strumento di strumentazione binaria statica che estrae file oggetto COFF da eseguibili, consentendo l'inserimento di codice/dati in qualsiasi punto per fuzzing black-box e patching binario tramite IDA Pro.
IDA2Obj è uno strumento per implementare SBI (Static Binary Instrumentation).
Il flusso di lavoro è semplice:
Prepara l'ambiente:
AUTOIMPORT_COMPAT_IDA695 = YES nel file idapython.cfg per supportare l'API con lo stile vecchio di IDA 6.x.pip install coughCrea una cartella come area di lavoro.
Copia il binario target che vuoi fuzzare nell'area di lavoro.
Carica il binario in IDA Pro, scegli Carica risorse e carica manualmente per caricare tutti i segmenti dal binario.
Attendi che l'analisi automatica sia completata.
Dump i file oggetto eseguendo lo script MagicIDA/main.py.
${workspace}/${module}/objs/afl.TRACE_MODE nell'area di lavoro, i file oggetto prodotti saranno in ${workspace}/${module}/objs/trace.${workspace}/${module}:
Genera i file lib eseguendo lo script utils/LibImports.py.
${workspace}/${module}/libs, usati successivamente per il collegamento.Apri un terminale e spostati nella directory dell'area di lavoro.
Collega tutti i file oggetto e lib usando utils/link.bat.
utils/link.bat GdiPlus dll afl /RELEASE${workspace}/${module}.Patcha il nuovo binario costruito usando utils/PatchPEHeader.py.
utils/PatchPEHeader.py GdiPlus/GdiPlus.afl.dllutils/register_msdia_run_as_administrator.bat come amministratore.Esegui e fuzza.
Slide HITB : https://github.com/jhftss/jhftss.github.io/blob/main/res/slides/HITB2021SIN%20-%20IDA2Obj%20-%20Mickey%20Jin.pdf
Demo : https://drive.google.com/file/d/1N3DXJCts5jG0Y5B92CrJOTIHedWyEQKr/view?usp=sharing