View Full Version : an x86 BIOS reverse engineering article
Pinczakko
08-08-2004, 10:09 AM
Probably some of you already read the article, I really sorry for posting this here on that case.  And I wish this post is not considered as spamming :(. Here's the link : 
_http://www.geocities.com/mamanzip/Articles/Award_Bios_RE/Award_Bios_RE_guide.html
snippet of the contents :
Table of Contents
 * ** Foreword
 * ** Prerequisite
 * * * * *o PCI BUS
 * * * * *o ISA BUS
 * ** Some Hardware "Peculiarities"
 * ** Some Software "Peculiarities"
 * ** Our Tools of Trade
 * ** Award BIOS File Structure
 * ** Disassembling the BIOS
 * * * * 1. Bootblock
 * * * * 2. System BIOS a.k.a Original.tmp
It is actually my work on my computer's Award BIOS this last one month. I hope it would be beneficial to some who might need it.
Regards, 
Pinczakko
Devine9
08-08-2004, 10:24 AM
I'm sure it will be interesting.  I'll be reading it later.  
Thanks,
Devine Right [RET]
Pinczakko
10-09-2006, 05:34 AM
I've been adding quite significant stuff into the article this last several months (years?)  :P 
Table of Contents (New)
    * 1. Foreword
    * 2. Prerequisite
          o 2.1. PCI BUS
          o 2.2. ISA BUS
    * 3. Some Hardware Peculiarities
          o 3.1. BIOS Chip Addressing
          o 3.2. Obscure Hardware Port
          o 3.3. "Relocatable" Hardware Port
          o 3.4. Expansion ROM Handling
    * 4. Some Software Peculiarities
          o 4.1. Call Instruction Peculiarity
          o 4.2. Retn Instruction Peculiarity
    * 5. Our Tools of Trade
          o 5.1. What do we need anyway?
          o 5.2. Intro to IDA Pro Techniques
                + 5.2.1. Introducing IDA Pro
                + 5.2.2. IDA Pro Scripting and Key Bindings
    * 6. Award BIOS File Structure
          o 6.1. The Compressed Components
          o 6.2. The Pure Binary Components
          o 6.3. The Memory Map In The Real System (Mainboard)
    * 7. Disassembling the BIOS
          o 7.1. Bootblock
                + 7.1.1. "Virtual Shutdown" routine
                + 7.1.2. Chipset_Reg_Early_Init routine
                + 7.1.3. Init_Interrupt_n_PwrMgmt routine
                + 7.1.4. Call To "Early Silicon Support" Routine
                + 7.1.5. Bootblock Is Copied And Executed In RAM
                + 7.1.6. Call to bios decompression routine and the jump into decompressed system bios
                      # 7.1.6.1. Enable FFF80000h-FFFDFFFFh decoding
                      # 7.1.6.2. Copy lower 128KB of BIOS code from ROM chip into RAM
                      # 7.1.6.3. Disable FFF8_0000h-FFFD_FFFFh decoding
                      # 7.1.6.4. Verify checksum of the whole compressed BIOS image
                      # 7.1.6.5. Look for the decompression engine
                      # 7.1.6.6. Decompress the compressed BIOS components
                            * 7.1.6.6.a. The format of the LZH level-1 compressed bios components
                            * 7.1.6.6.b. The location of various checksums
                            * 7.1.6.6.c. The key parts of the decompression routine
                      # 7.1.6.7. Shadow the BIOS code
                      # 7.1.6.8. Enable the microprocessor cache then jump into the decompressed system BIOS
          o 7.2. System BIOS a.k.a Original.tmp
                + 7.2.1. Entry point from "Bootblock in RAM"
                + 7.2.2. The awardext.rom and Extension BIOS Components (lower 128KB bios-code) Relocation Routine
                + 7.2.3. Call to the POST routine a.k.a "POST jump table execution"
                + 7.2.4. The "segment vector" Routines
                + 7.2.5. "chksum_ROM" Procedure
                + 7.2.6. Original.tmp Decompression Routine for The "Extension_BIOS Components"
                + 7.2.7. Microcode Update Routine
    * 8. Rants and Raves
    * 9. Closing
Happy reading  ;)
haggar
10-18-2006, 02:46 PM
Wow, that i more a book than just an arcticle. I sow your post long ago on crackmes.de. Nice to see that you still work on this.
Pinczakko
11-01-2006, 12:33 AM
I'm working on it in the weekend. It's fun. 
Anyway, it will be more fun when I'm done with something more interesting BIOS stuff  ;). 
Thx for the appreciation.
vBulletin® v3.6.4, Copyright ©2000-2016, Jelsoft Enterprises Ltd.