G33K @ Work | Basteleien eines Geeks



Mai/10

27

Dumping the VMware BIOS

Sometimes, even if you don’t want to install a pirated Windows version, you may want to dump and modify the BIOS of a computer.
Especially if you are developing some kind of an ACPI subsystem for your own small operating system kernel.

Doing this with real hardware is kinda risky and complex.
But what about virtual machines like VMware? They have a BIOS, but how can we get our hands on it?
As I’m using Mac OS X for all my daily work, I’m using VMware Fusion as a virtualization program.

The BIOS seems to be hidden inside the virtual machine monitor executable itself.
To make our lifes easier, we are going to extract only the x86_64 part out of the universal binary with the following command:

lipo /Libary/Application\ Support/VMware\ Fusion/vmware-vmx -thin x86_64 -output /Users/user/Desktop/vm64

Now, we have a Mach-O file with only one architecture, which is x86_64.
It doesn’t matter if you are dumping the BIOS out of the i386 or x86_64 version of the binary. It should be the same for both architectures.

After that, we can extract the appropriate section in the Mach-O file which contains the BIOS itself:

segedit /Users/user/Desktop/vm64 -extract __VMWARE bios440 /Users/user/Desktop/bios440.rom

And here, you go: bios440.rom contains your VMware BIOS.

After you modified it to your wishes, you can use a handy VMware feature which lets you specify a custom BIOS for a virtual machine inside its vmx-file.
Just add this line to the vmx-file of the machine you want a custom BIOS for and place the rom file in the proper folder:

bios440.filename = "bios.rom"

Happy BIOS modding!

RSS Feed

Noch keine Kommentare

Leave a comment!

<<

>>