Insyde BIOS Modding: Manually Changing Settings

Even though you don’t have access to all the hidden settings in your BIOS, you can still manually adjust them by changing the EFI global variable package that contains the values for each setting. By doing this, you can easily change the settings you want without having access to them in the setup utility.

The flash chip on your computer that contains your BIOS also has several other regions. Usually a computer has at least these follow regions: Intel ME, BIOS, and Descriptor. However they can also have additional ones line GBE and OEM. Depending on how you update your computer’s firmware, only parts of these regions are actually changed. So when you update your BIOS through an update released by your OEM, your actually only overwriting part of the whole BIOS region. So what’s stored in the remaining part? We’ll in the BIOS region, one of these things are the EFI global variables.

So how do we gain access to a complete dump of out BIOS so that we can modify these values? I’ve only seen one program that can accomplish this task and that’s Intel’s Flash Programming Tool. There are different version of it for each of the Intel chipsets, so get the one that corresponds to your mobo’s chipset. You can find the different versions in this discussion.

To create a complete dump of your bios, you’ll need to run the following command through an admin cmd after you’ve already navigated to the programming tool’s directory. So here’s what I did:

 cd C:\Users\Domino\Desktop\ME 6.0.0.1184\ME 6.0.0.1184\Tools\System Tools\Flash Programming Tool\Windows  
   
 fptw.exe -d output.bin -BIOS  

If everything worked, then the output on the command prompt should say something similar to this:

So this will create a file called output.bin that contains the complete dump of your bios. As a side note, this complete dump will include things like your computer’s tattoo information, variable packages, etc. Since some of this stuff is unique to the computer it came from, like serial numbers, I don’t recommend you attempt to flash someone else’s complete BIOS dump on your own computer. Now lets use my EFI Variable Dumper to extract the important information about the variable packages from it. Just drag and drop the output.bin file onto the EFI Variable Dumper.exe executable.

This creates a file called output Variables Dump.txt that contains all the EFI global variable packages. Most of these packages aren’t of much interest to us, however the one that relates to the values of certain settings in the setup utility is the Setup package. This package contains the values currently being used by the settings. So all you need to know is the variable ID of the setting you want to change, the size of it’s storage in the package, and all its possible values. Luckily my EFI IFR Dumper can give us all that information. So before we continue, we first need to be get the IFR dump from our setup utility module. The first part of my hidden settings tutorial goes over how to get this, so come back here after you successfully dumped the internal forms representation from that module. Now lets continue, so here’s what EFI IFR Dumper tells me about my Virtualization Technology settings:

The storage width is the size in bytes that the setting takes up, so in this case the location containing the setting we’re looking for is only one byte in length. So lets go into the file produced by EFI Variable Dumper, mines called output Variable Dump.txt, and see the setting with the variable ID 0x1A1 under the Setup variable package.
Now all we have to do is change the one byte at offset 0x122CCD from 0x0 to 0x1 which will enable this setting. We know that 0x0 is disabled and 0x1 is enabled because of what EFI IFR Dumper told us. So lets open the complete bios dump with a hex editor and change the value at that offset from 0x0 to 0x1.
Now save the file and all that’s left to do is flash the changes. Intel’s FPT is capable of doing this with the following command:
 fptw.exe -f output.bin -BIOS  
 This flashes the file named output.bin to the BIOS region of the flash chip. If everything went right, then the output on the command prompt should look similar to this:
So restart your computer to see the changes. I shouldn’t have to say this, but do not restart your computer is the flashing process did not preform correctly as this will most likely brick your computer. Here’s my Virtualization Technology settings after we altered the Setup global variable package:
No way! It worked. Now we can change every setting even though we don’t have direct access to all of them.
Categories: software

Related Posts

software

Safe Mode Fix in Windows 10

Safe Mode is a diagnostic mode for Windows that starts your computer in a limited state. Only the basic files and drivers necessary to run Windows are started. This helps us in identifying whether the Read more…

software

Classic interface in AutoCAD 2015, AutoCAD 2016, AutoCAD 2017

One of the most notable innovations in AutoCAD 2015 (and AutoCAD 2016) was the lack of a classic interface. It should be noted that the developers gradually began to wean users from the classic interface Read more…

software

HP Backup and Recovery Manager

Help your company protect against potentially disastrous data loss. HP Backup & Recovery Manager helps protect the data and system state of your HP computer by taking scheduled snapshots, which can be stored in a Read more…