LongSoft / UEFITool

UEFI firmware image viewer and editor
BSD 2-Clause "Simplified" License
4.47k stars 632 forks source link

UEFITool new engine cannot find a volume found in the old engine #352

Closed mytbk closed 1 year ago

mytbk commented 1 year ago

firmware link (update image of HP EliteBook 820 G2): https://ftp.hp.com/pub/softpaq/sp102001-102500/sp102456.exe SHA256: f9e8c0e7083e0ca745bfc6762ae2ac9c031ea6793cd009174b1dec2358c699cf Use unar sp102456.exe to get the UEFI image sp102456/M71_0131.bin.

When using the UEFITool old engine, expand the first FFSv2 volume, under which is a file with GUID 4A538818-5AE0-4EB2-B2EB-488B23657022 (subtype DXE core), then expand all the things under it, can get another FFSv2 volume with GUID 7A9354D9-0468-444A-81CE-0BF617D890DF, which contains all the DXE modules of the firmware. When using the new engine, after expanding the compressed section and the raw section under it, cannot get the FFSv2 volume, instead the new engine shows a padding with a different size as in the old engine, and an NVRAM volume following it.

NikolajSchlej commented 1 year ago

Can not reproduce, the volume is there for me in NE A65.

Screenshot 2023-03-12 at 03 03 53
mytbk commented 1 year ago

I did a bisect between A65 and git new_engine. b8567d32cc158eb68d900d9a161e92889e643627 is the first bad commit.

vit9696 commented 1 year ago

Which operating system do you use? Which binary file?

mytbk commented 1 year ago

@vit9696 I'm using Arch Linux x86_64. The binary file is the one mentioned in this issue.

vit9696 commented 1 year ago

UEFITool binary file, do you self-compile?

NikolajSchlej commented 1 year ago

Confirmed, the fix is to remove the offending commit and won't attempt to fix any further issues without a test suite, or stuff like this will regress again.

NikolajSchlej commented 1 year ago

Fixed, will remove that pair from the history later, thanks for catching this before it got into A66.