UEFITool version: 0.22.1
I have already noticed a phenomenon that, even if there’s absolutly no change, just “extract as-is” and directly “replace as-is”, the BIOS image will still change drastically. I don’t know whether this is caused by some encoding thing - the module I’m replacing does not seem to be compressed.
Even though I had not came across any problem before, until ASRock X79 Extreme6/GB.
I extracted IvtQpiandMrcInit
and modified two bytes of it, and then, I replaced it with modifed version just like before.
However this time the system bricked.
The Dr.Debug
LED showed 04
error.
(and what’s more, this mainboard somehow dropped its 1394 GUID so that it has to be reset)
I then experimented with an image with no actual modification, just directly replace the unmodified extracted FFS as-is, still bricked.
After some black-box tinkering attempt, I somehow discoverd a way to modify the BIOS of this board without seeing unexpected drastical changes afterwards. However it’s still unknown whether this method works without bricking the board. It has been tested to work, the board no longer bricks.
-
Extract the PE32 image body I want to modify with UEFITool.
-
Do the modification I want to the extracted PE32 image.
-
Replace the PE32 image body with UEFITool.
-
Reopen the saved (reconstructed) image with UEFITool, extract the whole FFS as-is.
-
Use MMTool (the version I used: 5.0.0.7) to replace that exported FFS file. (with MMTool alone, it would refuse to replace a modified FFS, saying “invalid ffs file”, probably the checksum does not match)
-
In MMTool, save the modified image (as a different file name).
I compared the modified file against the original one, and found no drastical change, just the two bytes I wanted to modifiy plus one byte which is possibly the FFS checksum.