Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/theopolis/uefi-firmware-parser
Sécurité des Systèmes EmbarquésRétro-ingénierieSécurité MatérielleAnalyse de BinairesAnalyse de Micrologiciel
GitHubtheopolis/uefi-firmware-parser

uefi-firmware-parser

Analyser les structures liées au firmware BIOS/Intel ME/UEFI : Volumes, FileSystems, Files, etc.

Voir le dépôt
9191874il y a 3 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Analyseur de firmware UEFI

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

L'analyseur de firmware UEFI est un module simple et un ensemble de scripts pour analyser, extraire et recréer des volumes de firmware UEFI. Cela inclut des modules d'analyse pour le BIOS, OptionROM, Intel ME et d'autres formats également. Veuillez utiliser les exemples de scripts pour les tutoriels d'analyse.

Installation

Ce module est disponible via PyPi sous le nom uefi_firmware <https://pypi.python.org/pypi/uefi_firmware>_

::

$ sudo pip install uefi_firmware

Pour installer depuis Github, clonez ce dépôt et utilisez :

::

$ sudo python ./setup.py install

Prérequis

  • Les en-têtes de développement Python, généralement trouvés dans le paquet python-dev.
  • Les fonctionnalités de compression/décompression utiliseront les en-têtes Python et gcc.

Utilisation

La façon la plus simple d'utiliser le module pour détecter ou analyser un firmware est via 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()

Il existe plusieurs classes dans les paquets uefi, pfs, me et flash qui acceptent le contenu des fichiers dans leur constructeur. Dans tous les cas, des méthodes abstraites sont implémentées :

  • process() effectue le travail d'analyse et retourne True ou False
  • showinfo() affiche une hiérarchie d'informations sur la structure
  • dump() parcourt la hiérarchie et écrit chaque élément dans un fichier

Scripts

Un script Python est installé 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.

Pour tester un fichier ou un répertoire de fichiers :

::

$ 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

Si vous devez analyser et extraire un grand nombre de fichiers de firmware, consultez l'option -O pour générer automatiquement un dossier de sortie par fichier. Si vous analysez et recherchez des éléments internes dans un shell, l'option --echo affichera le nom du fichier d'entrée avant l'analyse.

Le vérificateur de type de firmware décidera de la meilleure façon d'analyser le fichier. Si l'option --test échoue à identifier le type, ou le déclare unknown, essayez d'utiliser l'option -b ou --superbrute. Cette dernière effectue une vérification de type octet par octet. ::

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

Fonctionnalités

  • Analyse des volumes, capsules, systèmes de fichiers, fichiers et sections de firmware UEFI

  • Descripteurs flash Intel PCH

  • Analyse des modules Intel ME (ME, TXE, etc.)

  • Analyse des mises à jour Dell PFS (HDR)

  • Compression/décompression Tiano/EFI et native LZMA (7z)

  • Affichage complet de la hiérarchie des objets de volume de firmware UEFI

  • [Re]génération du descripteur de firmware à l'aide des volumes d'entrée analysés

  • Injection de section de fichier de firmware

Injection de GUID

L'injection ou le remplacement de GUID (pas encore d'ajout/soustraction) peut être effectué sur des sections d'un fichier de firmware UEFI, ou sur des fichiers de firmware UEFI dans un système de fichiers de 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.

Remarque : lors de l'injection dans un fichier de firmware, l'utilisateur sera invité à choisir quelle section remplacer. Pour le moment, cela n'est pas encore automatisable.

Support IDA Python

Un script est inclus pour générer des étiquettes GUID supplémentaires à importer dans IDA Python en utilisant les plugins de Snare. En utilisant -g LABEL, le script générera une sortie formatée sous forme de dictionnaire Python. Ce projet essaiera de rester à jour avec les GUID des fournisseurs populaires automatiquement.

::

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

Fournisseurs pris en charge

Ce module a été testé sur les mises à jour BIOS/UEFI/firmware des fournisseurs suivants. Toutes les mises à jour de chaque produit ne seront pas analysées, certaines peuvent nécessiter une décompression ou une extraction préalable du mécanisme de mise à jour de distribution (généralement un PE).

  • ASRock
  • Dell
  • Gigabyte
  • Intel
  • Lenovo
  • HP
  • MSI
  • VMware
  • Apple
  • Qualcomm
Télécharger l’outil