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
ghidra-firmware-utils — Estensione Ghidra per il reverse engineering del firmware PC, che fornisce loader per option ROM PCI, Intel Flash Descriptor, coreboot CBFS e volumi firmware UEFI, oltre a script helper UEFI per il recupero dei tipi e l'identificazione dei GUID. | Kitploit
Strumenti/GitHubGitHub/al3xtjames/ghidra-firmware-utils
Sicurezza Sistemi EmbeddedReverse EngineeringSicurezza HardwareSicurezza Hardware e IoTAnalisi di BinariAnalisi del Firmware
GitHubal3xtjames/ghidra-firmware-utils

ghidra-firmware-utils

Estensione Ghidra per il reverse engineering del firmware PC, che fornisce loader per option ROM PCI, Intel Flash Descriptor, coreboot CBFS e volumi firmware UEFI, oltre a script helper UEFI per il recupero dei tipi e l'identificazione dei GUID.

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
Vedi Repository
4935635 giorni faRevisionato da Kitploit

Ghidra Firmware Utilities

Vari moduli per Ghidra per assistere nel reverse engineering del firmware PC. Questo è stato accettato come progetto coreboot per GSoC 2019.

Funzionalità

Loader per option ROM PCI

  • Implementa un loader FS per option ROM PCI (gestisce ROM ibride con più immagini, es. x86 legacy + UEFI)
  • Carica eseguibili UEFI da option ROM PCI (incluse immagini compresse)
  • Definisce la funzione del punto di ingresso e vari tipi di dati di intestazione per option ROM x86 legacy

Loader per immagini firmware

  • Implementa un loader FS per immagini Flash Map (FMAP) e Intel Flash Descriptor (IFD) (mostra le regioni flash)
  • Implementa un loader FS per immagini Coreboot Filesystem (CBFS) (visualizza i file inclusi e gestisce la compressione)
  • Implementa un loader FS per volumi firmware UEFI e parsing annidato di file/section FFS del filesystem firmware (FFS)

Loader Terse Executable (TE)

  • Implementa un loader binario per binari TE (usati frequentemente in UEFI PI)

Script di supporto UEFI

  • Include librerie di tipi di dati per i tipi UEFI di base (tratti da EDK2 MdePkg)
  • Corregge la firma della funzione del punto di ingresso
  • Definisce i GUID noti nei segmenti .data/.text del binario
  • Individua e definisce copie globali dei puntatori alle tabelle UEFI (gBS/gRT/gST/ecc.)

Compilazione e installazione

Sono richiesti JDK 21 (o successivo) e Ghidra 12.0 (o successivo).

Viene utilizzato il sistema di compilazione Gradle standard di Ghidra. Impostare la variabile d'ambiente GHIDRA_INSTALL_DIR prima della compilazione, oppure impostarla come proprietà Gradle (utile per la compilazione in un IDE):

Variabile d'ambiente

root@kitploit:~
$ export GHIDRA_INSTALL_DIR="/percorso/di/ghidra"
$ ./gradlew

Proprietà Gradle

root@kitploit:~
echo GHIDRA_INSTALL_DIR=/percorso/di/ghidra > gradle.properties

[!NOTE] GHIDRA_INSTALL_DIR deve puntare alla directory che contiene support/buildExtension.gradle. Ad esempio, gli utenti del pacchetto Flathub dovrebbero usare /var/lib/flatpak/app/org.ghidra_sre.Ghidra/current/active/files/lib/ghidra.

Lo ZIP del modulo verrà generato in dist/. Usare File > Install Extensions e selezionare il segno più verde per sfogliare fino all'estensione. Riavviare Ghidra quando richiesto.

Per un funzionamento corretto, il plugin dovrebbe essere compilato con lo stesso JRE usato dalla propria installazione di Ghidra. Se sono installati più ambienti runtime Java, selezionare il JRE corretto impostando la variabile d'ambiente JAVA_HOME prima della compilazione.

Utilizzo

Loader per option ROM PCI

Aggiungere una option ROM PCI a un progetto Ghidra. Le option ROM x86 legacy possono essere caricate direttamente per l'analisi. Assicurarsi che il formato binario sia impostato su x86 PCI Option ROM e importare il binario.

Le option ROM UEFI o le option ROM che contengono più di un'immagine dovrebbero essere importate usando il loader del filesystem. Quando viene richiesto di selezionare una modalità di importazione, selezionare File system. Le immagini contenute nella option ROM verranno visualizzate e possono essere importate per l'analisi. Le immagini x86 legacy verranno gestite dal loader x86 PCI Option ROM e le immagini UEFI dal loader PE32 (la compressione è supportata). Le informazioni per ciascuna immagine possono essere visualizzate selezionando Get Info nel menu contestuale.

Loader per immagini firmware

Aggiungere un'immagine firmware supportata a un progetto Ghidra. Il loader per immagini firmware supporta immagini Intel con Flash Descriptor, immagini coreboot con layout FMAP/CBFS e volumi firmware UEFI. La modalità di importazione File system può essere usata per visualizzare i file incorporati nell'immagine firmware specificata.

Notare che alcune immagini firmware UEFI possono memorizzare volumi firmware annidati all'interno di file freeform/raw (o sezioni FFS freeform/raw). Tali file possono essere importati come volumi firmware selezionando Open File System nel menu contestuale per il file freeform/raw specificato. Se non viene trovato alcun volume firmware annidato, verrà visualizzato un messaggio di errore (No file system provider for...).

Script di supporto UEFI

Lo script di supporto è incluso nella directory ghidra_scripts del plugin, che dovrebbe essere aggiunta automaticamente all'elenco delle directory degli script in Ghidra.

Eseguire lo script di supporto UEFI selezionando UEFIHelper.java nella finestra Script Manager (accessibile da Window -> Script Manager).

Per modificare la libreria di tipi di dati UEFI, modificare il template PRF in data/gen_prf.sh come necessario e generare nuovi file PRF. Aprire il file PRF generato in File -> Parse C Source. Compilare la libreria di tipi di dati aggiornata selezionando Parse to File.... Sovrascrivere le librerie di tipi di dati originali in data e ricompilare il plugin.

Progetti correlati

Questi sono alcuni progetti interessanti correlati al reverse engineering UEFI:

  • efiXplorer - Plugin IDA per l'analisi del firmware UEFI e l'automazione del reverse engineering
  • Ghidra-EFI-Byte-Code-Processor - Modulo processore EFI Byte Code (EBC) per Ghidra

Licenza

Apache 2.0, con alcune eccezioni:

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

Crediti

src/efidecompress/c/efidecompress.c è una versione leggermente modificata di Decompress.c di uefi-firmware-parser (che a sua volta deriva da l'originale in EDK2 BaseTools).

Il loader FS IFD in src/main/java/firmware/ifd ha usato il parser di UEFITool come riferimento.

Il database GUID in data/guids.csv è tratto da UEFITool.

Le librerie di tipi di dati UEFI in data/uefi_*.gdt sono state generate con data/gen_prf.sh, che è parzialmente basato sulla definizione del parser UEFI di una pull request Ghidra di wrffrz. Queste librerie di tipi di dati usano header di EDK2 MdePkg.

GhidraVitaLoader di xerpi è stato usato come riferimento per alcune parti dello script di supporto UEFI.

Scarica lo strumento