Welcome to the dark corner of BIOS reverse engineering, code injection and various modification techniques only deemed by those immensely curious about BIOS

Saturday, December 12, 2009

BIOS Disassembly Ninjutsu Uncovered 2nd Edition is in the works!

I've just signed up with No Starch Press. And after discussing the last state of the original book, I decided to just go ahead and make a new edition because I considered the coverage in todays bus protocol implementation in the original book lacking so much. I will try to give enough coverage on HyperTransport and PCI Express. QPI will have a section devoted for it but probably not too deep because I don't have its in-depth technical documentation at the moment. Probably the coverage on UEFI/TianoCore won't be sufficient in the new edition due to lack of time to explore the subject. The current schedule is very tight. I planned to switch the discussion in BIOS reversing more toward AMIBIOS because it has been more widespread recently. Of course Award BIOS will have its place as well. If you have any ideas, please drop it in the comment section. I'd like to hear about it.

Monday, December 7, 2009

Running Hexworkshop with Wine

Another indispensable BIOS modification tool is Hexworkshop. Well, there are lots of binary file editor in Linux but none of them lives up to Hexworkshop feature sets and ease of use yet (at least based on my experience).  

Fortunately, it works just fine under wine albeit sometimes with noticeable--but not distracting--slowdowns. Here is the screenshot of Hexworkshop 

Anyway, the difference between the AMI BIOS tools and Hexworkshop, lies in their installation method. You have to "install" Hexworkshop to wine (by using the winefile utility or other similar means) prior to using it, while AMI BIOS tools are just fine to invoke directly from the shell, such as:

pinczakko@opusera:~/work_in_progress$ wine AMIBCP_V3.37.exe
That's it. Now, I can mess with AMI BIOS file in Linux.

AMI BIOS Modification in Linux

Since I have a rather weird 3G modem that doesn't work correctly in Windows, I have to use Linux (x86_64) to get online. This is a drawback when I want to do some BIOS modification, until just now. I experimented with Windows AMI BIOS tools recently in my Slamd64 Linux installation with wine. The result is promising. The BIOS binary produced by the AMI BIOS tools runs just fine, equal to modifying the BIOS in Windows. Well, there is some warning of unimplemented filename related API when I run MMTOOL but overall, it works just fine.

Below is AMIBCP screenshot running under wine in Linux

Below is the screenshot of MMTOOL running under wine in Linux

Perhaps, you noticed the weird font rendering. Well, I can't get the font right yet on applications running under wine in my system.

So, now I can do BIOS modification in Linux (at least AMIBIOS) without having to resort to the "painful" Windows installation in my machine.