
Statisches Binary-Instrumentierungstool, das COFF-Objektdateien aus ausführbaren Dateien extrahiert und so das Einfügen von Code/Daten an jeder Stelle für Black-Box-Fuzzing und Binary-Patching über IDA Pro ermöglicht.
IDA2Obj ist ein Werkzeug zur Implementierung von SBI (Static Binary Instrumentation).
Der Arbeitsablauf ist einfach:
Umgebung vorbereiten:
AUTOIMPORT_COMPAT_IDA695 = YES in der idapython.cfg, um die API im alten IDA 6.x-Stil zu unterstützen.pip install coughErstelle einen Ordner als Arbeitsbereich.
Kopiere die Zielbinärdatei, die du fuzzen möchtest, in den Arbeitsbereich.
Lade die Binärdatei in IDA Pro, wähle Load resources und manually load, um alle Segmente aus der Binärdatei zu laden.
Warte, bis die Autoanalyse abgeschlossen ist.
Extrahiere Objektdateien durch Ausführen des Skripts MagicIDA/main.py.
${workspace}/${module}/objs/afl.TRACE_MODE im Arbeitsbereich erstellst, befinden sich die ausgegebenen Objektdateien in ${workspace}/${module}/objs/trace.${workspace}/${module} erstellt:
Erzeuge Lib-Dateien durch Ausführen des Skripts utils/LibImports.py.
${workspace}/${module}/libs und werden später für das Linken verwendet.Öffne ein Terminal und wechsle in den Arbeitsbereich.
Verlinke alle Objekt- und Lib-Dateien mit utils/link.bat.
utils/link.bat GdiPlus dll afl /RELEASE${workspace}/${module} erzeugen.Patche die neu erstellte Binärdatei mit utils/PatchPEHeader.py.
utils/PatchPEHeader.py GdiPlus/GdiPlus.afl.dllutils/register_msdia_run_as_administrator.bat als Administrator ausführen.Ausführen & Fuzzen.
HITB-Folien : 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