Über
Es ist ein IDA-Plugin zur Erweiterung der UEFI-Reverse-Engineering-Fähigkeiten. Basierend auf ida-efitools mit einer Reihe von Korrekturen und neuen Funktionen.
Funktioniert sowohl mit Python 2 als auch mit Python 3. Unterstützt veraltete Versionen von IDA Pro 7.x ohne Garantie.
Funktionen
- GUID-Definitionen
- Struktur-Weitergabe (Register, Xrefs, Stack-Variablen)
- Identifizierung von Protokollen und Schnittstellen
- Initialisierung unbekannter Protokolle
Erweiterte Funktionen
- Kann sowohl als Plugin als auch als Skript verwendet werden.
- Importiert automatisch benutzerdefinierte C-Deklarationen (Structs, Enums, Unions, Typedefs) aus dem Verzeichnis
efitools2/types
- Setzt die Berechtigungen des Code-Segments auf RWE (um eine fehlerhafte Eliminierung von totem Code in der Dekompilierer-Ansicht zu beheben)
Nur-Plugin-Funktionen
- Bietet die Möglichkeit, externe Typen zu synchronisieren
- Druckt und kopiert ausgewählte EFI_GUID aus der Disassembler-Ansicht in die Zwischenablage
- Extrahiert EFI_GUID aus lokalen Variablenzuweisungen
Wichtige Hinweise
- behemoth.til wird zugunsten von IDAs uefi.til und uefi64.til abgelehnt
- Verwenden Sie nicht uefi(64).til von IDA 7.3, da es Fehler enthält
Verwendung
Als Skript
Führen Sie einfach efitools2/efitools.py aus IDA aus.
Als Plugin
Hotkeys:
- Strg-Alt-E – führt die gesamte Magie aus
- Strg-Alt-G (auf Daten) – EFI_GUID an der aktuellen Cursorposition drucken und kopieren
- Strg-Alt-G (auf Code) – EFI_GUID aus lokaler Variablenzuweisung extrahieren und kopieren (Cursor auf
EFI_GUID.data1-Zuweisung setzen)
- F5 (im Fenster „Lokale Typen") – lokale Typen aus dem Ordner
types synchronisieren
Anpassung
- Hotkeys können in der Datei
ida-efitool2.py konfiguriert werden.
- Einige Einstellungen finden Sie in der Datei
efitools2/efitools.py.
- Benutzerdefinierte GUIDs sollten in der Datei
efitools2/guids/custom.ini platziert werden.
- Benutzerdefinierte Protokolle sollten im Ordner
efitools2/types abgelegt werden. Siehe verfügbare Beispiele.
So exportieren Sie benutzerdefinierte Typen
Dies ist eine integrierte Funktion von IDA. Öffnen Sie einfach das Kontextmenü für den Typ im Fenster „Lokale Typen" und wählen Sie die Aktion „In Header-Datei exportieren".
Voraussetzungen
pip install future – Nur für Python 2.
pip install clipboard – Wenn Sie EFI_GUID-Inhalte automatisch in die Zwischenablage kopieren möchten.
Plugin-Installation
Kopieren Sie einfach die Datei ida-efitools2.py und den Ordner efitools2 in das Plugins-Verzeichnis von IDA.
Danksagungen
@snare für die ursprüngliche Codebasis von ida-efiutils.
@danse-macabre für das von Grund auf neu geschriebene ida-efitools.
@djpohly, @al3xtjames, @vutung2311 für Beiträge (Forks).
@p-state (ich) für das Einhauchen neuen Lebens in dieses Projekt.