Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
uefi-firmware-parser — Analisar estruturas relacionadas a firmware BIOS/Intel ME/UEFI: Volumes, Sistemas de Arquivos, Arquivos, etc. | Kitploit
Ferramentas/GitHubGitHub/theopolis/uefi-firmware-parser
Segurança de Sistemas EmbarcadosEngenharia ReversaSegurança de HardwareAnálise de BináriosAnálise de Firmware
GitHubtheopolis/uefi-firmware-parser

uefi-firmware-parser

Analisar estruturas relacionadas a firmware BIOS/Intel ME/UEFI: Volumes, Sistemas de Arquivos, Arquivos, etc.

Ver Repositório
919187há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Analisador de Firmware UEFI

==============================

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

O analisador de firmware UEFI é um módulo simples e um conjunto de scripts para analisar, extrair e recriar volumes de firmware UEFI. Inclui módulos de análise para BIOS, OptionROM, Intel ME e outros formatos também. Por favor, use os scripts de exemplo para tutoriais de análise.

Instalação

Este módulo está disponível via PyPi como uefi_firmware <https://pypi.python.org/pypi/uefi_firmware>_

::

$ sudo pip install uefi_firmware

Para instalar a partir do Github, faça checkout deste repositório e use:

::

$ sudo python ./setup.py install

Requisitos

  • Cabeçalhos de desenvolvimento Python, geralmente encontrados no pacote python-dev.
  • Os recursos de compressão/descompressão usarão os cabeçalhos python e o gcc.

Uso

A forma mais simples de usar o módulo para detectar ou analisar firmware é através da classe AutoParser.

::

import uefi_firmware with open('/caminho/para/firmware.rom', 'r') as fh: conteudo_arquivo = fh.read() parser = uefi_firmware.AutoParser(conteudo_arquivo) if parser.type() != 'desconhecido': firmware = parser.parse() firmware.showinfo()

Existem várias classes nos pacotes uefi, pfs, me e flash que aceitam conteúdos de arquivo em seu construtor. Em todos os casos, existem métodos abstratos implementados:

  • process() realiza o trabalho de análise e retorna True ou False
  • showinfo() exibe uma hierarquia de informações sobre a estrutura
  • dump() percorre a hierarquia e escreve cada parte em um arquivo

Scripts

Um script Python é instalado: 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.

Para testar um arquivo ou diretório de arquivos:

::

$ 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 você precisa analisar e extrair um grande número de arquivos de firmware, confira a opção -O para gerar automaticamente uma pasta de saída por arquivo. Se estiver analisando e procurando por componentes internos em um shell, a opção --echo exibirá o nome do arquivo de entrada antes da análise.

O verificador de tipo de firmware decidirá a melhor forma de analisar o arquivo. Se a opção --test falhar ao identificar o tipo, ou chamá-lo de desconhecido, tente usar a opção -b ou --superbrute. A última realiza uma verificação byte a byte do tipo. ::

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

Recursos

  • Análise de Volumes de Firmware UEFI, Cápsulas, Sistemas de Arquivos, Arquivos, Seções

  • Descritores de Flash Intel PCH

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

  • Análise de atualizações Dell PFS (HDR)

  • [Des]compressão Tiano/EFI e LZMA nativa (7z)

  • Exibição completa da hierarquia de objetos do volume de firmware UEFI

  • [Re]geração do descritor de firmware usando os volumes de entrada analisados

  • Injeção de Seções de Arquivo de Firmware

Injeção GUID

A injeção ou substituição de GUID (ainda sem adição/subtração) pode ser realizada em seções dentro de um arquivo de firmware UEFI, ou em arquivos de firmware UEFI dentro de um sistema de arquivos 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: ao injetar em um arquivo de firmware, o usuário será perguntado qual seção substituir. No momento, isso ainda não é automatizável.

Suporte a IDA Python

Existe um script incluído para gerar rótulos GUID adicionais para importar no IDA Python usando os plugins do Snare. Usando a opção -g LABEL, o script gerará uma saída no formato de dicionário Python. Este projeto tentará manter-se atualizado automaticamente com GUIDs de fornecedores populares.

::

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

Fornecedores Suportados

Este módulo foi testado em atualizações de BIOS/UEFI/firmware dos seguintes fornecedores. Nem toda atualização para todo produto será analisada; algumas podem exigir descompressão ou extração prévia do mecanismo de distribuição da atualização (tipicamente um PE).

  • ASRock
  • Dell
  • Gigabyte
  • Intel
  • Lenovo
  • HP
  • MSI
  • VMware
  • Apple
  • Qualcomm
Baixar ferramenta