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
uefi-firmware-parser — Analysieren von BIOS/Intel ME/UEFI-Firmware-bezogenen Strukturen: Volumes, Dateisysteme, Dateien usw. | Kitploit
Tools/GitHubGitHub/theopolis/uefi-firmware-parser
Embedded-System-SicherheitReverse EngineeringHardware-SicherheitBinäranalyseFirmware-Analyse
GitHubtheopolis/uefi-firmware-parser

uefi-firmware-parser

Analysieren von BIOS/Intel ME/UEFI-Firmware-bezogenen Strukturen: Volumes, Dateisysteme, Dateien usw.

Repository anzeigen
9191874vor 3 MonatenVon 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

UEFI Firmware Parser

.. image:: https://travis-ci.org/theopolis/uefi-firmware-parser.svg?branch=master :target: https://travis-ci.org/theopolis/uefi-firmware-parser

Der UEFI-Firmware-Parser ist ein einfaches Modul und eine Reihe von Skripten zum Parsen, Extrahieren und Wiederherstellen von UEFI-Firmware-Volumes. Dies beinhaltet auch Parser-Module für BIOS, OptionROM, Intel ME und andere Formate. Bitte verwenden Sie die Beispielskripte für Tutorials zum Parsen.

Installation

Dieses Modul ist über PyPi als uefi_firmware <https://pypi.python.org/pypi/uefi_firmware>_ verfügbar.

::

$ sudo pip install uefi_firmware

Zur Installation von Github klonen Sie dieses Repository und verwenden Sie:

::

$ sudo python ./setup.py install

Anforderungen

  • Python-Entwicklungsheader, normalerweise im Paket python-dev enthalten.
  • Die Komprimierungs-/Dekomprimierungsfunktionen verwenden die Python-Header und gcc.

Verwendung

Die einfachste Möglichkeit, das Modul zur Erkennung oder zum Parsen von Firmware zu verwenden, ist die Klasse AutoParser.

::

import uefi_firmware with open('/path/to/firmware.rom', 'r') as fh: file_content = fh.read() parser = uefi_firmware.AutoParser(file_content) if parser.type() != 'unknown': firmware = parser.parse() firmware.showinfo()

Es gibt mehrere Klassen in den Paketen uefi, pfs, me und flash, die Dateiinhalte in ihrem Konstruktor akzeptieren. In allen Fällen sind abstrakte Methoden implementiert:

  • process() führt die Parse-Arbeit durch und gibt True oder False zurück
  • showinfo() gibt eine Hierarchie von Informationen über die Struktur aus
  • dump() durchläuft die Hierarchie und schreibt jedes Element in eine Datei

Skripte

Ein Python-Skript wird installiert: uefi-firmware-parser

::

$ uefi-firmware-parser -h usage: uefi-firmware-parser [-h] [-b] [--superbrute] [-q] [-o OUTPUT] [-O] [-c] [-e] [-g GENERATE] [--test] file [file ...]

Parse, and optionally output, details and data on UEFI-related firmware.

positional arguments: file The file(s) to work on

optional arguments: -h, --help show this help message and exit -b, --brute The input is a blob and may contain FV headers. --superbrute The input is a blob and may contain any sort of firmware object -q, --quiet Do not show info. -o OUTPUT, --output OUTPUT Dump firmware objects to this folder. -O, --outputfolder Dump firmware objects to a folder based on filename ${FILENAME}_output/ -c, --echo Echo the filename before parsing or extracting. -e, --extract Extract all files/sections/volumes. -g GENERATE, --generate GENERATE Generate a FDF, implies extraction (volumes only) --test Test file parsing, output name/success.

So testen Sie eine Datei oder ein Verzeichnis mit Dateien:

::

$ uefi-firmware-parser --test ~/firmware/* ~/firmware/970E32_1.40: UEFIFirmwareVolume ~/firmware/CO5975P.BIO: EFICapsule ~/firmware/me-03.obj: IntelME ~/firmware/O990-A03.exe: None ~/firmware/O990-A03.exe.hdr: DellPFS

Wenn Sie eine große Anzahl von Firmware-Dateien parsen und extrahieren müssen, verwenden Sie die Option -O, um automatisch einen Ausgabeordner pro Datei zu generieren. Wenn Sie in einer Shell parsen und nach internen Strukturen suchen, gibt die Option --echo den Eingabedateinamen vor dem Parsen aus.

Der Firmware-Typ-Prüfer entscheidet, wie die Datei am besten geparst wird. Falls die Option --test den Typ nicht identifizieren kann oder ihn als unknown bezeichnet, versuchen Sie die Option -b oder --superbrute. Letztere führt eine byteweise Typüberprüfung durch.

::

$ uefi-firmware-parser --test ~/firmware/970E32_1.40 ~/firmware/970E32_1.40: unknown $ uefi-firmware-parser --superbrute ~/firmware/970E32_1.40 [...]

Funktionen

  • Parsen von UEFI-Firmware-Volumes, -Kapseln, -Dateisystemen, -Dateien, -Sektionen

  • Intel PCH Flash-Deskriptoren

  • Parsen von Intel ME-Modulen (ME, TXE, etc.)

  • Parsen von Dell PFS (HDR) Updates

  • Tiano/EFI- und native LZMA (7z) [De]komprimierung

  • Vollständige Hierarchieanzeige von UEFI-Firmware-Volume-Objekten

  • [Neu]generierung von Firmware-Deskriptoren unter Verwendung der geparsten Eingabe-Volumes

  • Einfügen von Firmware-Datei-Sektionen

GUID-Injektion

Die Injektion oder der GUID-Austausch (noch keine Addition/Subtraktion) kann auf Sektionen innerhalb einer UEFI-Firmware-Datei oder auf UEFI-Firmware-Dateien innerhalb eines Firmware-Dateisystems durchgeführt werden.

::

$ python ./scripts/fv_injector.py -h usage: fv_injector.py [-h] [-c] [-p] [-f] [--guid GUID] --injection INJECTION [-o OUTPUT] file

Search a file for UEFI firmware volumes, parse and output.

positional arguments: file The file to work on

optional arguments: -h, --help show this help message and exit -c, --capsule The input file is a firmware capsule. -p, --pfs The input file is a Dell PFS. -f, --ff Inject payload into firmware file. --guid GUID GUID to replace (inject). --injection INJECTION Pre-generated EFI file to inject. -o OUTPUT, --output OUTPUT Name of the output file.

Hinweis: Beim Injizieren in eine Firmware-Datei wird der Benutzer gefragt, welche Sektion ersetzt werden soll. Dies ist derzeit noch nicht per Skript steuerbar.

IDA Python-Unterstützung

Es ist ein Skript enthalten, um zusätzliche GUID-Bezeichnungen zu erzeugen, die mit Snare's Plugins in IDA Python importiert werden können. Mit der Option -g LABEL erzeugt das Skript eine Ausgabe im Python-Dictionary-Format. Dieses Projekt wird versuchen, die bekannten Hersteller-GUIDs automatisch aktuell zu halten.

::

$ python ./scripts/uefi_guids.py -h usage: uefi_guids.py [-h] [-c] [-b] [-d] [-g GENERATE] [-u] file

Output GUIDs for files, optionally write GUID structure file.

positional arguments: file The file to work on

optional arguments: -h, --help show this help message and exit -c, --capsule The input file is a firmware capsule, do not search. -b, --brute The input file is a blob, search for firmware volume headers. -d, --flash The input file is a flash descriptor. -g GENERATE, --generate GENERATE Generate a behemoth-style GUID output. -u, --unknowns When generating also print unknowns.

Unterstützte Hersteller

Dieses Modul wurde mit BIOS/UEFI/Firmware-Updates folgender Hersteller getestet. Nicht jedes Update für jedes Produkt wird parsen können; manche erfordern möglicherweise eine vorherige Dekomprimierung oder Extraktion aus dem Verteilungs-Update-Mechanismus (typischerweise eine PE).

  • ASRock
  • Dell
  • Gigabyte
  • Intel
  • Lenovo
  • HP
  • MSI
  • VMware
  • Apple
  • Qualcomm
Tool herunterladen