awdBIOS 镜像结构简单分析

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    本文所涉及到的资料,均来自internet...
    造成的后果,与本人无关
|   内容仅为个人意见。由于时间仓促,很多细节没有验证,错误很多。
|   如果您有不同意见,可联系
icelord@sohu.com,欢迎指正。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

[1].关键数据结构
    (1).*BBSS*
        see AwdBiosSrc
   
    (2).-lh5-
        see AwdbEditSrc
        see Xfcous Article 'xxx文件格式xxx'
   
    (3).*KSA    (Locate in SystemBIOS中)
        see AwdBiosSrc
   
[2].几个镜像的结构

----------------------------BIOS 6.00PG (512KB /????)----------------------------
BIOS Version:Phoenix - AwardBIOS v6.00PG
BIOS Info:11/05/2003-KT600-8237-6A6LYA1GC-13
BIOS ID:6A6LYA1Gnix - AwardBIOS v6.00PG

Name:KV7_13.BIN         Type:50000000   Offset:       0 ModuleSize:129E1
Name:awardext.rom       Type:407F0000   Offset:   129E3 ModuleSize:8F5F
Name:ACPITBL.BIN        Type:40030000   Offset:   1B943 ModuleSize:1ABA
Name:AWARDEPA.BIN       Type:40020000   Offset:   1D3FE ModuleSize:22A
Name:awardeyt.rom       Type:400E0000   Offset:   1D629 ModuleSize:3F24
Name:_EN_CODE.BIN       Type:40290000   Offset:   2154E ModuleSize:261B
Name:8233LAN.BIN        Type:40860000   Offset:   23B6A ModuleSize:80FE
Name:6420R221.rom       Type:40870000   Offset:   2BC69 ModuleSize:6C6A
Name:leaving.bin        Type:40A40000   Offset:   328D4 ModuleSize:12C5

External_BootRom_Seg:7000       //4GB-64KB+0x7000 --->FileOffset 0x77000
Decompress_Code_Seg:9400        //hehe,should be '=Award Decompression Bios ='
WholeBootRomStart_Seg:6000
ROMDrive_Limit_Seg:6000         //4GB-64KB+0x6000 --->file offset 0x76000
ESCD_Data_Seg:FFFF              //not exist?
Extract_Entry:9ADE
Expand_Entry:9B34
BootExt_Size:9                  //9KB  == DecompBlockStart-ExtBootRomSeg=0x9400-0x7000=9KB

+-----------------------------+ 0x00000 '-lh5-' --->LzhModule
|         lzh module          |
+-----------------------------+
|         lzh module          |
+-----------------------------+
|         lzh module          |
+-----------------------------+
|                             |
+-----------------------------+
|      Free Space(0xFF)       |
+-----------------------------+
|                             |
+-----------------------------+ 0x76000 here appear code that !=0xFF
|                             |
+-----------------------------+
|                             |
+-----------------------------+ 0x79400 '=Award Decompression Bios ='
|      DecompBlock(4KB??)     |
+-----------------------------+ 0x79F30 '*BS1'
|                             |
+-----------------------------+ 0x79F50 '*BBSS*' --->Bootblock Signature struct...
|                             |
+-----------------------------+ 0x7A000 'IMD$'   --->DMI Area
|         DMI (8KB)           |
+-----------------------------+ 0x7C000
|                             |
+-----------------------------+ 0x7E000 'Award BootBlock BIOS v1.0'
|       BootBlock(8KB)        |
+-----------------------------+ 0x7FFFF


----------------------------BIOS 6.00PG (256KB/16K-8K-8K Unit???)----------------------------

Name:6A69VM4H.BIN       Type:50000000   Offset:       0 ModuleSize:12AE2
Name:awardext.rom       Type:407F0000   Offset:   12AE4 ModuleSize:96C8
Name:CPUCODE.BIN        Type:40010000   Offset:   1C1AD ModuleSize:1024
Name:ACPITBL.BIN        Type:40030000   Offset:   1D1D2 ModuleSize:17BB
Name:AwardBmp.bmp       Type:40020000   Offset:   1E98E ModuleSize:30C
Name:_EN_CODE.BIN       Type:40290000   Offset:   1EC9B ModuleSize:1396
Name:ANTI_VIR.BIN       Type:40070000   Offset:   20032 ModuleSize:14AB
Name:cafe.bmp           Type:40000000   Offset:   214DE ModuleSize:492E

SystemBIOS CRC:AC36
BIOS Version:Award Modular BIOS v6.00PG
BIOS Info:10/09/2001-i845-W627HF-6A69VM4HC-00
BIOS ID:6A69VM4Hd Modular BIOS v6.00PG

External_BootRom_Seg:4000           //bootExt Start=0x34000
Decompress_Code_Seg:7000            //DecompBlock  -0x37000
WholeBootRomStart_Seg:4000          //
ROMDrive_Limit_Seg:4000             //
ESCD_Data_Seg:A000                  //'ACFG'=0x3A000
Extract_Entry:76DE                  //
Expand_Entry:7734                   //
BootExt_Size:C                      //bootExt_Size=DecompBlock-ExtBootStart=0x7000-0x4000

+-----------------------------+ 0x00000 '-lh5-' --->LzhModule
|         lzh module          |
+-----------------------------+
|         lzh module          |
+-----------------------------+
|         lzh module          |
+-----------------------------+
|                             |
+-----------------------------+
|      Free Space(0xFF)       |
+-----------------------------+
|                             |
+-----------------------------+ 0x34000 here appear code that !=0xFF
|                             |
+-----------------------------+
|                             |
+-----------------------------+ 0x37000 '=Award Decompression Bios ='
|      DecompBlock(4KB??)     |
+-----------------------------+ 0x37B20 '*BS1'
|                             |
+-----------------------------+ 0x37B40 '*BBSS*' --->Bootblock Signature struct...
|                             |
+-----------------------------+ 0x38000 'IMD$'   --->DMI Area
|         DMI (8KB)           |
+-----------------------------+ 0x3A000 'ACFG'   --->ESCD Area
|         ESCD (8KB)          |
+-----------------------------+ 0x3C000
|                             |
+-----------------------------+ 0x3E000 'Award BootBlock BIOS v1.0'
|       BootBlock(8KB)        |
+-----------------------------+ 0x3FFFF

----------------------------BIOS 6.00PG (512KB/64KB Unit?)----------------------------

Name:ms86517b.BIN       Type:50000000   Offset:   20000 ModuleSize:13B4A
Name:awardext.rom       Type:407F0000   Offset:   33B4C ModuleSize:9D7E
Name:CPUCODE.BIN        Type:40010000   Offset:   3D8CB ModuleSize:3790
Name:ACPITBL.BIN        Type:40030000   Offset:   4105C ModuleSize:1AF1
Name:AwardBmp.bmp       Type:40020000   Offset:   42B4E ModuleSize:2A9
Name:awardeyt.rom       Type:400E0000   Offset:   42DF8 ModuleSize:65E6
Name:_EN_CODE.BIN       Type:40290000   Offset:   493DF ModuleSize:1F41
Name:SDG_2731.DAT       Type:40800000   Offset:   4B321 ModuleSize:6671
Name:DMBM_Tt.ROM        Type:40160000   Offset:   51993 ModuleSize:626
Name:MBINFO.ROM         Type:400F0000   Offset:   51FBA ModuleSize:C8
Name:RTSROM_M.LOM       Type:40860000   Offset:   52083 ModuleSize:7DA8
Name:L_PII.BMP          Type:40000000   Offset:   59E2C ModuleSize:1639
Name:L_HT.BMP           Type:40200000   Offset:   5B466 ModuleSize:18EA
Name:L_P4.BMP           Type:40210000   Offset:   5CD51 ModuleSize:1858
Analyse BIOS Okay!!!
Decompress okay...!!!
SystemBIOS CRC:656A
BIOS Version:Phoenix - AwardBIOS v6.00PG
BIOS Info:04/04/2005-i865-W83627-6A79Q1JC-00
BIOS ID:6A79Q1J
External_BootRom_Seg:B00E           //0xEB000   ---> FileOffset:0x6B000 ?
Decompress_Code_Seg:EE4E            //0xEEE40   ---> FileOffset:0x6EE40 !
WholeBootRomStart_Seg:B00E          //0xEB000   ---> FileOffset:0x6B000 ?
ROMDrive_Limit_Seg:B00E             //0xEB000   ---> FileOffset:0x6B000 ?
ESCD_Data_Seg:1                     //0x10000   ---> FileOffset:0x10000 ?
Extract_Entry:F51E
Expand_Entry:F574
BootExt_Size:C                      //12KB??    ---> ?

+-----------------------------+ 0x00000 'IMD$' --->DMI Area
|         DMI Block           |
+-----------------------------+ 0x10000 'ACFG' --->ESCD Area
|         ESCD Block          |
+-----------------------------+ 0x20000 '-lh5-' -->LzhModule
|         lzh module          |
+-----------------------------+
|         lzh module          |
+-----------------------------+
|      Free Space(0xFF)       |
+-----------------------------+
|                             |
+-----------------------------+ 0x63FE0 here appear code that !=0xFF
|                             |
+-----------------------------+
|                             |
+-----------------------------+ 0x6EE40 '=Award Decompression Bios ='
|      DecompBlock(4KB??)     |
+-----------------------------+ 0x6F950 '*BS1'          ???????
|                             |
+-----------------------------+ 0x6F970 '*BBSS*' --->Bootblock Signature struct...
|                             |
+-----------------------------+
|                             |
+-----------------------------+ 0x7E000 'Award BootBlock BIOS v1.0'
|       BootBlock(8KB)        |
+-----------------------------+ 0x7FFFF

------------------------------------------------------------------------------------------

下面是Awd2MbBIOS_Src中的片断,解释了上面的问题:

(location:/btromseg.equ)

;================== FLASH 64K unit definition ================
ifdef FLASH_64k_unit
    Flash_2M_support    equ 1
   
    ESCD_Data_Seg       =   0ffffh      ;assume none
    ifdef PNP_BIOS
      ESCD_Data_Seg     =   00000h      ;physical = 00000h
      ifdef DMI_ENABLED
        ESCD_Data_Seg       =   00001h  ;physical = 10000h
      endif ;DMI_ENABLED
      ifdef P6_BIOS_ONLY
        ESCD_Data_Seg       =   00001h  ;physical = 10000h
      endif ;P6_BIOS_ONLY
    endif ;PNP_BIOS

    External_BootRom_Seg    =   0e006h  ;physical = 6e000h
    Decompress_Code_Seg =   0f006h+Extra_MemSizing_Space        ;physical = 6f000h+Extra_MemSizing_Space
    ROMDrive_Limit_Seg  =   0e006h      ;physical = 6e000h
    WholeBootRomStart_Seg   =   0e006h  ;physical = 6e000h
endif
;==============================================================

对于不同的Flash有不同的Unit 大小?

64KB Unit
16K-8K-8K Unit
4KB Unit

BIOS镜像的关键信息都包含在BBSS结构中(至少在6.00PG中),对于不同版本的AwdBIOS,
结构不一定一样/存在?
曾在一个Award BIOS 6.0中没有找到BBSS结构,却找到了一个*BBSN*标志,没办法,只能将这个位置
看作BBSS结构来计算BIOS (Decompess Block Cksum)效验和.

至于BBSS结构和 LZH结构,看下文吧... 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值