-
Notifications
You must be signed in to change notification settings - Fork 13
Introduce UEFI Firmware Analyzer #93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…dashboard and unified CLI
Technical Details:
- Created 'uefi_analyzer' module consolidating analysis and reporting logic.
- Implemented 'BiosAnalyzer' with Flash-accurate metrics:
- Physical Flash Occupancy: Strict constraint based on root-level FV allocation.
- Deep Analysis (Logical): Captures decompressed component data.
- Developed interactive HTML Dashboard with modern UI:
- Hierarchical tree explorer for FVs, FFS files, and Sections.
- Absolute start/end hexadecimal address ranges for all components.
- Intelligent recursive search with automatic parent expansion.
- Progress bars for space utilization at every nested level.
- Raw JSON fallback for non-standard UEFI structures.
- Added 'uefi-analyze' unified CLI for one-step binary-to-dashboard workflow.
- Integrated UEFI Analysis into Windows Context Menu for right-click explorer access.
- Enhanced 'UefiParser' with robust UTF-8 handling and version metadata fixes.
- Bumped project version to 2.0.6."
|
pls review ++ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a comprehensive UEFI Firmware Analyzer module that provides both physical flash and logical (decompressed) analysis capabilities. The analyzer generates an interactive HTML dashboard with hierarchical exploration, space utilization metrics, and intelligent search functionality.
Changes:
- Created the
uefi_analyzermodule with three core components:BiosAnalyzerfor metrics calculation,report_generatorfor HTML dashboard generation, andclifor unified command-line interface - Added
uefi-analyzeCLI command for one-step binary-to-dashboard workflow - Integrated UEFI analysis into Windows Context Menu for right-click access
- Enhanced
UefiParserwith improved UTF-8 handling and version metadata robustness - Bumped project version to 2.0.6
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/xmlcli/modules/winContextMenu/xmlcli_registry_listener.py | Adds new "analyze_uefi" command that chains JSON generation with dashboard creation |
| src/xmlcli/modules/uefi_analyzer/report_generator.py | Implements HTML dashboard generator with embedded JavaScript for interactive firmware visualization |
| src/xmlcli/modules/uefi_analyzer/cli.py | Provides unified CLI entry point that handles both binary parsing and JSON analysis workflows |
| src/xmlcli/modules/uefi_analyzer/bios_analyzer.py | Implements core analysis logic with separate physical/logical metrics calculation |
| src/xmlcli/modules/uefi_analyzer/analyze_view.py | Alternative entry point for analysis-only workflow when JSON already exists |
| src/xmlcli/modules/uefi_analyzer/init.py | Package initialization file |
| src/xmlcli/modules/uefi_analyzer/README.md | Documentation for the UEFI analyzer module features and usage |
| src/xmlcli/common/bios_fw_parser.py | Fixes exception handling syntax and adds robustness for version attribute access |
| src/xmlcli/_version.py | Increments BUILD number from 5 to 6 |
| pyproject.toml | Updates version to 2.0.6 and registers new CLI command |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
For Issue #8
Technical Details:
Test Plan
Step 1: Parse the Binary to JSON
Step 2: Generate the Analysis Dashboard
uefi-analyze "C:\path\to\binary.bin"