theopolis / uefi-firmware-parser

Parse BIOS/Intel ME/UEFI firmware related structures: Volumes, FileSystems, Files, etc
Other
780 stars 156 forks source link

Add option to parse raw DEPEX binary #102

Closed JohnAZoidberg closed 3 years ago

JohnAZoidberg commented 3 years ago

When a proprietary DXE is distributed in binary form, the DEPEX also has to be distributed. They're included in the EDK2 FDF file like this:

FILE DRIVER = E8AB593A-9E3F-42A5-829E-E1E4843A0B13 {
   SECTION DXE_DEPEX = FooDxe.depex
   SECTION PE32 = FooDxe.efi
   SECTION UI = "FooDxe"
}

Too dump the contents of the DEPEX you can run the command like this:

$ uefi-firmware-parse --depex FooDxe.depex
PUSH 06219C7A-9CCB-4292-8D6E-79A157C3EBBB
PUSH 665e3ff6-46cc-11d4-9a38-0090273fc14d (EFI_BDS_ARCH_PROTOCOL_GUID)
AND
END

The first GUID is unknown, the second one is known, therefore ufp can print the name.

JohnAZoidberg commented 3 years ago

I don't think it's possible to combine this with the regular parser to avoid having an extra commandline flag because the DEPEX doesn't really have a header.