Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
uefi-firmware-parser — Analiza estructuras relacionadas con firmware BIOS/Intel ME/UEFI: Volumes, FileSystems, Files, etc. | Kitploit
Herramientas/GitHubGitHub/theopolis/uefi-firmware-parser
Seguridad de Sistemas EmbebidosIngeniería InversaSeguridad de HardwareAnálisis de BinariosAnálisis de Firmware
GitHubtheopolis/uefi-firmware-parser

uefi-firmware-parser

Analiza estructuras relacionadas con firmware BIOS/Intel ME/UEFI: Volumes, FileSystems, Files, etc.

Ver Repositorio
919187hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Analizador de Firmware UEFI

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

El analizador de firmware UEFI es un módulo simple y un conjunto de scripts para analizar, extraer y recrear volúmenes de firmware UEFI. Incluye módulos de análisis para BIOS, OptionROM, Intel ME y otros formatos también. Por favor, use los scripts de ejemplo para tutoriales de análisis.

Instalación

Este módulo está disponible a través de PyPi como uefi_firmware <https://pypi.python.org/pypi/uefi_firmware>_

::

$ sudo pip install uefi_firmware

Para instalar desde Github, clone este repositorio y use:

::

$ sudo python ./setup.py install

Requisitos

  • Los encabezados de desarrollo de Python, generalmente en el paquete python-dev.
  • Las funciones de compresión/descompresión usarán los encabezados de python y gcc.

Uso

La forma más simple de usar el módulo para detectar o analizar firmware es a través de la clase 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()

Hay varias clases dentro de los paquetes uefi, pfs, me y flash que aceptan contenidos de archivos en su constructor. En todos los casos hay métodos abstractos implementados:

  • process() realiza el trabajo de análisis y devuelve True o False
  • showinfo() imprime una jerarquía de información sobre la estructura
  • dump() recorre la jerarquía y escribe cada elemento en un archivo

Scripts

Se instala un script de Python: 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.

To test a file or directory of files:

::

$ 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 necesita analizar y extraer una gran cantidad de archivos de firmware, pruebe la opción -O para generar automáticamente una carpeta de salida por archivo. Si analiza y busca internos en un shell, la opción --echo imprimirá el nombre del archivo de entrada antes de analizar.

El verificador de tipo de firmware decidirá la mejor forma de analizar el archivo. Si la opción --test no logra identificar el tipo, o lo llama unknown, intente usar la opción -b o --superbrute. La última realiza una verificación byte por byte del tipo. ::

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

Características

  • Análisis de Volúmenes de Firmware UEFI, Cápsulas, Sistemas de Archivos, Archivos y Secciones

  • Descriptores de Flash Intel PCH

  • Análisis de módulos Intel ME (ME, TXE, etc.)

  • Análisis de actualizaciones Dell PFS (HDR)

  • [Des]compresión Tiano/EFI y LZMA nativo (7z)

  • Visualización completa de la jerarquía de objetos del volumen de firmware UEFI

  • [Re]generación de descriptores de firmware utilizando los volúmenes de entrada analizados

  • Inyección de secciones de archivos de firmware

Inyección de GUID

La inyección o reemplazo de GUID (aún no hay suma/resta) se puede realizar en secciones dentro de un archivo de firmware UEFI, o en archivos de firmware UEFI dentro de un sistema de archivos 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.

Nota: al inyectar en un archivo de firmware, se le pedirá al usuario qué sección reemplazar. Por el momento esto no es aún automatizable.

Soporte para IDA Python

Hay un script incluido para generar etiquetas GUID adicionales para importar en IDA Python usando los plugins de Snare. Usando la opción -g LABEL, el script generará una salida en formato de diccionario de Python. Este proyecto tratará de mantenerse actualizado con los GUID populares de los proveedores automáticamente.

::

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

Proveedores compatibles

Este módulo se ha probado en actualizaciones de BIOS/UEFI/firmware de los siguientes proveedores. No todas las actualizaciones de todos los productos se analizarán; algunas pueden requerir descompresión o extracción previa del mecanismo de actualización de la distribución (normalmente un PE).

  • ASRock
  • Dell
  • Gigabyte
  • Intel
  • Lenovo
  • HP
  • MSI
  • VMware
  • Apple
  • Qualcomm
Descargar herramienta