
IDA-Plugin zur automatischen Erkennung von verschleiertem Code und Kontrollflussabflachung in Binärdateien mittels heuristischer Analyse und Dominatorbaum-Visualisierung.
Verfasst von: mcdulltii
Automatische Erkennung von obfuskiertem Code und anderen Zustandsmaschinen
Skripte zur automatischen Erkennung von obfuskiertem Code und Zustandsmaschinen in Binärdateien.
Die Implementierung basiert auf IDA 7.4+ (Python3). Siehe die folgenden Blogbeiträge für weitere Informationen zur Binary Ninja-Implementierung:
Heuristische Werte werden basierend auf den obigen Blogbeiträgen generiert und (im Modus All Functions) absteigend nach ihrer heuristischen Komplexität sortiert.
Aufgrund der rekursiven Natur der Erstellung eines Dominatorbaums für jede gefundene Funktion innerhalb der Binärdatei ist die Implementierung und der Laufzeitaufwand hoch, obwohl Threading implementiert wurde.
Durch die Verwendung von PyQt zur Visualisierung des Plugins können Benutzer die heuristische Funktionsanalyse der Binärdatei weiter anpassen.
PyQt5
Kopieren Sie das Verzeichnis obfDetect und die Datei obfDetect.py in das IDA-Plugins-Verzeichnis.
Wenn IDA erfolgreich eine Binärdatei geladen hat, gibt das Skript sein Banner in der IDC/Python-Konsole aus.
Das Skript kann über die File-Symbolleiste wie unten gezeigt ausgeführt werden. Alternativ: Ctrl-Shift-H.

Funktionsnamen in der Ausgabetabelle können mit n umbenannt werden, und aktualisieren somit die IDA-Funktionsnamen, die durch die Funktionsadresse angegeben sind.
Das Eingabefeld für den Exportdateinamen öffnet beim Klicken einen Dateiauswahl-Dialog, der zu einem benutzerdefinierten Speicherort navigiert werden kann.
Run, um die Analyse zu startenExport filename, um den Exportspeicherort auszuwählen, und klicken Sie auf die Schaltfläche Export, um die Tabelle im csv-Format zu exportieren

