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
ghidra-firmware-utils — Ghidra-Erweiterung für das Reverse Engineering von PC-Firmware, die Loader für PCI-Option-ROMs, Intel Flash Descriptor, coreboot CBFS und UEFI-Firmware-Volumes bereitstellt, sowie UEFI-Hilfsskripte für die Typwiederherstellung und GUID-Identifizierung. | Kitploit
Tools/GitHubGitHub/al3xtjames/ghidra-firmware-utils
Embedded-System-SicherheitReverse EngineeringHardware-SicherheitHardware- & IoT-SicherheitBinäranalyseFirmware-Analyse
GitHubal3xtjames/ghidra-firmware-utils

ghidra-firmware-utils

Ghidra-Erweiterung für das Reverse Engineering von PC-Firmware, die Loader für PCI-Option-ROMs, Intel Flash Descriptor, coreboot CBFS und UEFI-Firmware-Volumes bereitstellt, sowie UEFI-Hilfsskripte für die Typwiederherstellung und GUID-Identifizierung.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
4935613vor 5 TagenVon Kitploit geprüft

Ghidra Firmware Utilities

Verschiedene Module für Ghidra zur Unterstützung der Reverse Engineering von PC-Firmware. Dies wurde als coreboot-Projekt für GSoC 2019 angenommen.

Funktionen

PCI-Option-ROM-Loader

  • Implementiert einen FS-Loader für PCI-Option-ROMs (unterstützt Hybrid-ROMs mit mehreren Images, z. B. Legacy x86 + UEFI)
  • Lädt UEFI-Ausführbare Dateien aus PCI-Option-ROMs (einschließlich komprimierter Images)
  • Definiert die Entry-Point-Funktion und verschiedene Header-Datentypen für Legacy- x86-Option-ROMs

Firmware-Image-Loader

  • Implementiert einen FS-Loader für Flash-Map- (FMAP-) und Intel-Flash- Descriptor- (IFD-) Images (zeigt Flash-Regionen an)
  • Implementiert einen FS-Loader für Coreboot-Dateisystem- (CBFS-) Images (zeigt enthaltene Dateien an und behandelt Komprimierung)
  • Implementiert einen FS-Loader für UEFI-Firmware-Volumes und verschachtelte Firmware- Dateisystem- (FFS-) Datei/FFS-Abschnitt-Analyse

Terse-Executable- (TE-) Loader

  • Implementiert einen Binär-Loader für TE-Binärdateien (häufig in UEFI PI verwendet)

UEFI-Hilfsskript

  • Enthält Datentyp-Bibliotheken für Basis-UEFI-Typen (aus EDK2 MdePkg übernommen)
  • Korrigiert die Signatur der Entry-Point-Funktion
  • Definiert bekannte GUIDs in den .data/.text-Segmenten der Binärdatei
  • Lokalisiert und definiert globale Kopien von UEFI-Tabellenzeigern (gBS/gRT/gST/etc.)

Erstellung & Installation

JDK 21 (oder neuer) und Ghidra 12.0 (oder neuer) sind erforderlich.

Ghidras standardmäßiges Gradle-Build-System wird verwendet. Setzen Sie die Umgebungsvariable GHIDRA_INSTALL_DIR vor dem Build, oder legen Sie sie als Gradle-Eigenschaft fest (nützlich für das Erstellen in einer IDE):

Umgebungsvariable

root@kitploit:~
$ export GHIDRA_INSTALL_DIR="/path/to/ghidra"
$ ./gradlew

Gradle-Eigenschaft

root@kitploit:~
echo GHIDRA_INSTALL_DIR=/path/to/ghidra > gradle.properties

[!NOTE] GHIDRA_INSTALL_DIR sollte auf das Verzeichnis zeigen, das support/buildExtension.gradle enthält. Beispielsweise sollten Benutzer des Flathub-Pakets Folgendes verwenden: /var/lib/flatpak/app/org.ghidra_sre.Ghidra/current/active/files/lib/ghidra.

Das Modul-ZIP wird in dist/ ausgegeben. Verwenden Sie Datei > Erweiterungen installieren und wählen Sie das grüne Plus, um zur Erweiterung zu navigieren. Starten Sie Ghidra bei Aufforderung neu.

Für eine ordnungsgemäße Funktionalität sollte das Plugin mit derselben JRE erstellt werden, die von Ihrer Ghidra-Installation verwendet wird. Wenn mehrere Java-Laufzeitumgebungen installiert sind, wählen Sie die richtige JRE aus, indem Sie die Umgebungsvariable JAVA_HOME vor dem Build setzen.

Verwendung

PCI-Option-ROM-Loader

Fügen Sie ein PCI-Option-ROM zu einem Ghidra-Projekt hinzu. Legacy-x86-Option-ROMs können direkt zur Analyse geladen werden. Stellen Sie sicher, dass das Binärformat auf x86 PCI Option ROM gesetzt ist, und importieren Sie die Binärdatei.

UEFI-Option-ROMs oder Option-ROMs, die mehr als ein Image enthalten, sollten mit dem Dateisystem-Loader importiert werden. Wenn Sie aufgefordert werden, einen Importmodus auszuwählen, wählen Sie Dateisystem. Die im Option-ROM enthaltenen Images werden angezeigt und können zur Analyse importiert werden. Legacy-x86-Images werden vom x86-PCI-Option-ROM-Loader verarbeitet, und UEFI-Images werden vom PE32- Loader verarbeitet (Komprimierung wird unterstützt). Informationen zu jedem Image können durch Auswahl von Get Info im Rechtsklick-Menü angezeigt werden.

Firmware-Image-Loader

Fügen Sie ein unterstütztes Firmware-Image zu einem Ghidra-Projekt hinzu. Der Firmware-Image-Loader unterstützt Intel-Images mit einem Flash-Descriptor, coreboot-Images mit einem FMAP/CBFS- Layout und UEFI-Firmware-Volumes. Der Importmodus Dateisystem kann verwendet werden, um eingebettete Dateien innerhalb des angegebenen Firmware-Images anzuzeigen.

Beachten Sie, dass einige UEFI-Firmware-Images verschachtelte Firmware-Volumes innerhalb von Freeform/Raw-Dateien (oder Freeform/Raw-FFS-Abschnitten) speichern können. Solche Dateien können als Firmware-Volumes importiert werden, indem Sie Dateisystem öffnen im Rechtsklick-Menü für die angegebene Freeform/Raw-Datei auswählen. Wenn kein verschachteltes Firmware-Volume gefunden wird, wird eine Fehlermeldung angezeigt (No file system provider for...).

UEFI-Hilfsskript

Das Hilfsskript ist im ghidra_scripts-Verzeichnis des Plugins enthalten, das automatisch zur Liste der Skriptverzeichnisse in Ghidra hinzugefügt werden sollte.

Führen Sie das UEFI-Hilfsskript aus, indem Sie UEFIHelper.java im Skript-Manager-Fenster auswählen (zugänglich über Fenster -> Skript-Manager).

Um die UEFI-Datentyp-Bibliothek zu ändern, ändern Sie die PRF-Vorlage in data/gen_prf.sh nach Bedarf und generieren Sie neue PRF-Dateien. Öffnen Sie die generierte PRF-Datei in Datei -> C-Quelle parsen. Erstellen Sie die aktualisierte Datentyp-Bibliothek, indem Sie In Datei parsen... auswählen. Überschreiben Sie die ursprünglichen Datentyp-Bibliotheken in data und erstellen Sie das Plugin neu.

Verwandte Projekte

Dies sind einige interessante Projekte im Zusammenhang mit UEFI-Reverse Engineering:

  • efiXplorer - IDA-Plugin für UEFI-Firmware-Analyse und Reverse- Engineering-Automatisierung
  • Ghidra-EFI-Byte-Code-Processor - EFI-Byte-Code- (EBC-) Prozessormodul für Ghidra

Lizenz

Apache 2.0, mit einigen Ausnahmen:

  • src/efidecompress/c/efidecompress.c: BSD

Danksagungen

src/efidecompress/c/efidecompress.c ist eine leicht modifizierte Version von Decompress.c aus uefi-firmware-parser (das selbst von dem Original in EDK2 BaseTools abgeleitet ist).

Der IFD-FS-Loader in src/main/java/firmware/ifd verwendete den Parser von UEFITool als Referenz.

Die GUID-Datenbank in data/guids.csv stammt aus UEFITool.

Die UEFI-Datentyp-Bibliotheken in data/uefi_*.gdt wurden mit data/gen_prf.sh generiert, das teilweise auf der UEFI-Parser-Definition aus einem Ghidra-Pull-Request von wrffrz basiert. Diese Datentyp-Bibliotheken verwenden Header aus EDK2 MdePkg.

GhidraVitaLoader von xerpi wurde als Referenz für einige Teile des UEFI-Hilfsskripts verwendet.

Tool herunterladen