Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
uefi-firmware-parser — Analizza strutture correlate al firmware BIOS/Intel ME/UEFI: Volumi, File System, File, ecc. | Kitploit
Strumenti/GitHubGitHub/theopolis/uefi-firmware-parser
Sicurezza Sistemi EmbeddedReverse EngineeringSicurezza HardwareAnalisi di BinariAnalisi del Firmware
GitHubtheopolis/uefi-firmware-parser

uefi-firmware-parser

Analizza strutture correlate al firmware BIOS/Intel ME/UEFI: Volumi, File System, File, ecc.

Vedi Repository
9191872 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

UEFI Firmware Parser

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

Il parser del firmware UEFI è un modulo semplice e un insieme di script per analizzare, estrarre e ricreare volumi di firmware UEFI. Include moduli di analisi per BIOS, OptionROM, Intel ME e altri formati. Si prega di utilizzare gli script di esempio per tutorial sull'analisi.

Installazione

Questo modulo è disponibile su PyPi come uefi_firmware <https://pypi.python.org/pypi/uefi_firmware>_

::

$ sudo pip install uefi_firmware

Per installare da Github, esegui il checkout di questo repository e usa:

::

$ sudo python ./setup.py install

Requisiti

  • Header di sviluppo Python, solitamente presenti nel pacchetto python-dev.
  • Le funzionalità di compressione/decompressione utilizzeranno gli header Python e gcc.

Utilizzo

Il modo più semplice per utilizzare il modulo per rilevare o analizzare il firmware è attraverso la classe 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()

Esistono diverse classi all'interno dei pacchetti uefi, pfs, me e flash che accettano i contenuti dei file nel loro costruttore. In tutti i casi sono implementati metodi astratti:

  • process() esegue il lavoro di analisi e restituisce True o False
  • showinfo() stampa una gerarchia di informazioni sulla struttura
  • dump() percorre la gerarchia e scrive ogni elemento in un file

Script

Uno script Python viene installato 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.

Per testare un file o una directory di file:

::

$ 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

Se è necessario analizzare ed estrarre un gran numero di file di firmware, dai un'occhiata all'opzione -O per generare automaticamente una cartella di output per ogni file. Se si analizza e si cercano interni in una shell, l'opzione --echo stamperà il nome del file di input prima dell'analisi.

Il controllore del tipo di firmware deciderà come analizzare al meglio il file. Se l'opzione --test non riesce a identificare il tipo, o lo chiama unknown, prova a usare l'opzione -b o --superbrute. Quest'ultima esegue un controllo byte per byte del tipo. ::

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

Caratteristiche

  • Analisi di Volumi, Capsule, FileSystem, File, Sezioni del firmware UEFI
  • Descrittori Flash Intel PCH
  • Analisi dei moduli Intel ME (ME, TXE, ecc.)
  • Analisi degli aggiornamenti Dell PFS (HDR)
  • Decompressione Tiano/EFI e nativa LZMA (7z)
  • Visualizzazione completa della gerarchia degli oggetti del volume del firmware UEFI
  • [Ri]generazione del descrittore del firmware utilizzando i volumi di input analizzati
  • Iniezione di sezioni di file firmware

Iniezione GUID

L'iniezione o la sostituzione dei GUID (nessuna aggiunta/sottrazione ancora) può essere eseguita su sezioni all'interno di un file firmware UEFI, o su file firmware UEFI all'interno di un filesystem firmware.

::

$ 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.

Nota: quando si inietta in un file firmware, all'utente verrà chiesto quale sezione sostituire. Al momento questa operazione non è ancora scriptabile.

Supporto IDA Python

È incluso uno script per generare etichette GUID aggiuntive da importare in IDA Python utilizzando i plugin di Snare. Usando l'opzione -g LABEL lo script genererà un output formattato come dizionario Python. Questo progetto cercherà di mantenere aggiornati automaticamente i GUID dei vendor più popolari.

::

$ 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.

Vendor supportati

Questo modulo è stato testato su aggiornamenti BIOS/UEFI/firmware dei seguenti vendor. Non tutti gli aggiornamenti per tutti i prodotti verranno analizzati, alcuni potrebbero richiedere una decompressione o estrazione a priori dal meccanismo di aggiornamento della distribuzione (tipicamente un PE).

  • ASRock
  • Dell
  • Gigabyte
  • Intel
  • Lenovo
  • HP
  • MSI
  • VMware
  • Apple
  • Qualcomm
Scarica lo strumento