The UEFI Firmware Analyzer is a comprehensive tool within the xml-cli framework designed to parse, analyze, and visualize the structure and space utilization of UEFI firmware binaries.
- Physical Flash Analysis: Calculates space occupancy based on the actual flash layout (32MB/16MB/etc).
- Deep Analysis Mode: Visualizes decompressed components, providing a "logical" view of the firmware (often exceeding the physical size due to decompression).
- Interactive Dashboard: A self-contained HTML report with dynamic charts, progress bars for every level of hierarchy, and real-time search.
- Smart Search: Search by Driver Name, GUID, or
FileNameString. Matching items are automatically expanded for easy discovery. - Address Mapping: Displays absolute hexadecimal start and end address ranges for every component in the hierarchy.
You can analyze a binary firmware or an existing JSON report in one command:
# Run the analysis (if installed in environment)
uefi-analyze "C:\path\to\bios.bin"Note: This generates the JSON, calculates metrics, and automatically opens your browser.
Analyze any .bin, .rom, .fd, or .json file directly from Windows Explorer:
- Install Menu: Run
python src/xmlcli/modules/winContextMenu/install_context_menu.py. - Right-Click: Select
XmlCli Menu>Analyze UEFI Firmware and View. - Result: The tool detects the file type and opens the interactive dashboard immediately.
If you need to perform steps manually:
from xmlcli.common.bios_fw_parser import UefiParser
parser = UefiParser(bin_file="path/to/bios.bin")
output_dict = parser.parse_binary()
parser.write_result_to_file("output.json", output_dict=output_dict)uefi-analyze "C:\path\to\output.json"Results (JSON and HTML) are saved to:
C:\Users\<user>\AppData\Local\Temp\XmlCliOut\logs\result\analytic_view\