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

Tuesday, February 17, 2009

Fujitsu-Siemens BIOS File Structure

This is a quick post. Will be updated later. Just being here to remind me (haven't write it anywhere yet).

The Fujitsu-Siemens BIOS binary distributed in its website is not a plain BIOS binary which you can flash directly to their motherboard without using its propietary tool. The BIOS file structure is quite peculiar from other vendors. Here it is:

+--------------------------------+
| Some unidentified header (yet) |
+--------------------------------+
|   "real" BIOS binary           |
+--------------------------------+
| 1-byte 8-bit checksum          |
+--------------------------------+
In quick inspection, the header ends at offset 0x70 from the beginning of the BIOS file distributed by Fujitsu-Siemens. The particular BIOS I'm working on contains an altered AMI BIOS

Sunday, February 8, 2009

A Gentle Introduction to BIOS File Structure

The BIOS File Structure in its purest form will look like this:


+---------------------------+
|        Bootblock          |
+---------------------------+
|Compressed BIOS components |
+---------------------------+
The bootblock code responsible for decompression of the compressed BIOS components and to do a very early platform initialization, just enough to make the BIOS decompression process to run flawlessly and to do BIOS recovery procedure in certain bad BIOS flash scenarios. Mind you that not all of BIOS bad flash scenario can be recovered.

As far as I know, BIOS from Award-Phoenix (and its older ancestors Award, Inc. and Phoenix Technologies), AMI BIOS Inc., and all other BIOS vendors use this BIOS file structure. This BIOS file structure maybe used in the binary file of BIOS distributed directly by hardware vendors. However, it's possible that the BIOS distributed by the vendor has been altered in some way in order to do some more sanity checks during the BIOS flashing process. In the latter case, the BIOS file format won't be exactly as shown above, but it will probably compressed, or given some particular information preprended, inserted, or appended into the BIOS binary file distribution.

Welcome to The BIOS Blog

I started this blog in order to organize all of my rumblings on BIOS which are still hosted in www.geocities.com/mamanzip right now. Moving them into a blog will reduce the "pain" when I want to add new information regarding the x86 BIOS materials. As such, this blog will be focused on the x86 BIOS things, particularly: reverse engineering, code injection and modification in general. That's it for now.