Tool

UEFI Firmware Parser

Python library and uefi-firmware-parser command for identifying, parsing and extracting PC firmware images: UEFI firmware volumes, capsules, firmware file systems, files and sections, Intel PCH flash descriptors, Intel ME modules and Dell PFS update packages. An AutoParser picks the format, or a brute-force scan looks for volumes and other known objects inside an unidentified blob; results print as an object hierarchy or dump to files, with Tiano/EFI and LZMA sections decompressed by a bundled C extension. Helper scripts replace a section or file by GUID inside a volume, generate an FDF flash description from parsed volumes and output GUID labels for IDA scripts.

Requirements & limits

  • Latest release at review: v1.16, published 2026-06-04 on GitHub and PyPI with abi3 wheels for Linux, Windows and macOS. The reviewed master commit, from 2026-10-12, is three commits ahead: it adds AMI capsule support and a safe-path utility for dumped files and drops the future dependency, so those changes are not yet released.
  • Python 3.10+. A source install compiles the bundled efi_compressor C extension, which the README says needs the Python development headers and gcc; the package declares no other runtime dependencies. CI runs the unit tests on Python 3.12 on Ubuntu.
  • Input is a firmware file the user supplies, such as a vendor BIOS/UEFI update or a flash dump. The README warns that not every vendor update parses and that some must first be decompressed or unpacked from the update mechanism, typically a PE executable; --test reports the detected type, -b searches a blob for volume headers and --superbrute checks every byte offset for any known object. It lists ASRock, Dell, Gigabyte, Intel, Lenovo, HP, MSI, VMware, Apple and Qualcomm updates as tested, without per-version results.
  • GUID injection with fv_injector.py only replaces existing sections or files, with no addition or removal, and asks interactively which section to replace inside a firmware file. It parses containers and extracts their contents; analyzing the extracted modules needs a separate disassembler or decompiler. CI also parses a separately hosted samples repository, which this collection did not review.
  • LICENSE carries MIT-style permission text and points to inline licenses in contributed work, while setup.py and the PyPI metadata declare BSD-3-Clause. The bundled Intel Tiano compression sources are BSD-2-Clause-Patent and the LZMA SDK files are public domain. Nothing was installed and no firmware was parsed.

About this entry

Type
Tool
Category
Firmware tools
Relationship
Foundation tool
Targets
Firmware

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.rst GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
  2. setup.py GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
  3. uefi_firmware/__init__.py GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
  4. bin/uefi-firmware-parser GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
  5. scripts/fv_injector.py GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
  6. .github/workflows/ci.yml GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
  7. LICENSE GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
  8. uefi_firmware/compression/Tiano/Decompress.c GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
  9. https://github.com/theopolis/uefi-firmware-parser/releases/tag/v1.16
  10. https://pypi.org/project/uefi_firmware/1.16/

More in Firmware and hardware

All 30 entries in Firmware and hardware