Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ida-efiutils — Einige Skripte für IDA Pro zur Unterstützung beim Reverse Engineering von EFI-Binärdateien | Kitploit
Tools/GitHubGitHub/snare/ida-efiutils
Embedded-System-SicherheitReverse EngineeringHardware- & IoT-SicherheitBinäranalyseFirmware-Analyse
GitHubsnare/ida-efiutils

ida-efiutils

Einige Skripte für IDA Pro zur Unterstützung beim Reverse Engineering von EFI-Binärdateien

Repository anzeigen
30966vor 7 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

EFI-Skripte für IDA Pro

Einige IDA-Skripte zur Unterstützung beim Reverse Engineering von EFI-Executables.

Dieses Paket enthält die folgenden Dateien:

  1. efiutils.py - IDAPython-Modul mit einigen Hilfsfunktionen

  2. efiguids.py - Eine Sammlung bekannter GUIDs für EFI-Protokolle

  3. efiguids_ami.py - Eine Sammlung bekannter GUIDs für Protokolle, die im AMI-BIOS verwendet werden

  4. behemoth.h - Ein riesiger Header mit einer Sammlung von Typ- und Strukturdefinitionen für EFI

  5. structs.idc - Ein IDC-Skript mit einigen Strukturdefinitionen (durch behemoth.h ersetzt)

  6. te_image.bt - Eine 010-Editor-Vorlage für TE-Binärbilder

  7. te_loader.py - Ein IDA-Pro-Loader-Skript für TE-Binärbilder

Dies ist mein erster Versuch mit IDA-Skripting, also verzeiht mir bitte und lasst mich wissen, falls ich das Rad neu erfunden oder etwas Unsinniges getan habe.

Funktionen

Die wichtigsten nützlichen Funktionen werden unten beschrieben. Weitere Informationen zu anderen Funktionen finden Sie im Code und in den Docstrings.

rename_tables()

Findet den ersten Einstiegspunkt der Binärdatei, versucht, die Parameter zu verfolgen, die an die Einstiegspunktfunktion übergeben wurden, und benennt globale Variablen um, in denen die wichtigsten EFI-Tabellen gespeichert sind. Die folgenden Umbenennungsvorgänge werden durchgeführt:

  1. Die globale Variable, in der ImageHandle landet, wird in gImageHandle umbenannt.

  2. Die globale Variable, in der SystemTable landet, wird in gSystemTable umbenannt.

  3. Die globale Variable, in der SystemTable->BootServices landet, wird in gBootServices umbenannt.

  4. Die globale Variable, in der SystemTable->RuntimeServices landet, wird in gRuntimeServices umbenannt.

Call-Anweisungen werden nur eine Ebene tief verfolgt, da die meisten Executables die Tabellenreferenzen im Einstiegspunkt oder in einer vom Einstiegspunkt aufgerufenen Funktion kopieren. Ändern Sie MAX_STACK_DEPTH, falls erforderlich.

update_structs()

Findet Querverweise auf die oben umbenannten Tabellen und aktualisiert deren Namen, sodass sie Strukturoffsets der entsprechenden Strukturen sind. Wenn rename_tables() fehlgeschlagen ist, müssen Sie die Dinge wie oben manuell umbenennen, damit dies ordnungsgemäß funktioniert.

Zum Beispiel:

root@kitploit:~
    mov     rax, cs:qword_whatever
    call    qword ptr [rax+150h]

Wird zu:

root@kitploit:~
    mov     rax, cs:gBootServices
    call    [rax+EFI_BOOT_SERVICES.UninstallMultipleProtocolInterfaces]

rename_guids()

Findet GUIDs in Datensegmenten und benennt sie um. 470 Protokoll-GUIDs wurden aus dem TianoCore-Quellcode extrahiert, und proprietäre Apple- (und andere Hersteller-) GUIDs werden hinzugefügt, sobald sie auftreten.

go()

Bequeme Methode, die alle oben genannten Schritte ausführt.

Verwendung

  1. Laden Sie Ihre EFI-Binärdatei in IDA Pro

  2. Importieren Sie behemoth.h, um die erforderlichen Datenstrukturen zu definieren

  3. Fügen Sie die Strukturen aus lokalen Typen zu Ihrer IDB hinzu

  4. Führen Sie efiutils.py aus, um es zum Python-Pfad hinzuzufügen (oder tun Sie dies auf andere Weise)

  5. Werfen Sie einen Blick auf den Code/die Docstrings, aber wahrscheinlich:

    root@kitploit:~
     import efiutils; efiutils.go()
    

Um das te_loader.py-TE-Bild-Loader-Skript zu verwenden, installieren Sie es wie jeden anderen Loader. Unter OS X geschieht dies durch Kopieren oder Verlinken in den Loader-Ordner unter idaq.app/Contents/MacOS/loaders/.

Tool herunterladen