awdBIOS 镜像结构简单分析

反汇编BIOS之Bootblock(11)-- 初识BIOS的解压缩 <br />1、BIOS的主流程在bootblock的最后阶段,那当然就是把BIOS的压缩代码全部解压缩出来,然后进入到后续的BIOS初始化流程当中去。在这个章节中,我们就来简单探讨一下解压缩和解压缩以后BIOS的大致走向。(关于解压缩的细节,我们再议。) 图1 BIOS主流程 2、在解压缩BIOS之前的一些初始化 BIOS执行到现在,它本身已经被copy到了RAM中来,并且也正常RAM中跑了。不过为了能够让后续的BIOS跑的更快,更稳的话,我们还需要把内存的一些属性给初始化一下。这里要第一次接触到MTRR 阅读详情

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    本文所涉及到的资料,均来自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结构,看下文吧... 

AWD_BIOS刷新工具完整解决方案 许多企业客户希望在其定制设备上显示专属品牌Logo或公司名称。CBROM支持通过替换LOGO模块实现这一需求。首先准备一张256色BMP图像,尺寸通常为640×480像素,并使用专用工具(如LogoTool)转换为BIOS兼容格式:然后执行注入命令:部分主板还需启用“Quiet Boot”选项才能隐藏POST信息并显示Logo。可通过修改NVRAM模块中的Setup默认值实现自动化:# 编辑NVRAM.SET,设置Quiet Boot = Enabled。 阅读详情

相关推荐

BIOS更新:从入门到实践

BIOS(Basic Input Output System)是计算机最基本的输入输出系统,是嵌入在主板上的一种固件,它负责在计算机启动时进行硬件初始化,并在操作系统载入前提供低级设备驱动服务。BIOS通常被固化在ROM(Read-Only Memory)或Flash内存中,是连接计算机软件与硬件的第一道桥梁。BIOS(Basic Input Output System)是计算机启动时加载和运行的第一个软件,它在系统硬件与操作系统之间扮演着重要的桥梁角色。

weixin_35755823的博客 1112

IP定位离线库有什么作用?

1、定位返回大洲、国家、省、城市、区县、街道、经纬度、邮编、运营商等信息,含所有网络设备如PC机、手机等。1、定位返回大洲、国家、省、城市、区县、经纬度、邮编、运营商等信息,含所有网络设备如PC机、手机等。1、定位返回大洲、国家、省、城市、区县、经纬度、邮编、运营商等信息,含所有网络设备如PC机、手机等。2、定位覆盖43亿全量IPv4,国内IP定位返回城市、区县信息;国外IP定位返回国家、城市信息。全球全量ipv6地址数据,定位返回大洲、国家、省、城市、区县、经纬度、邮编、运营商等信息。

挖数据API接口的博客 969

DMI修改MAC工具

此工具需在DOS系统下使用,可以修改网卡地址。

AWD搭建和解决搭建遇到的问题

awd靶场搭建

m0_73948163的博客 722

使用ruby解析awdb离线库

使用Ruby解析AWDB(Anonymous Web Data)离线库是一个用于处理IP地址和地理位置信息的项目。AWDB是一个开源的数据库,它包含了全球范围内的IP地址和相关的地理位置信息。 在Ruby中,可以使用MaxMind提供的GeoIP2库来解析AWDB离线库。GeoIP2库提供了一组API,可以方便地查询IP地址的地理位置信息,如国家、城市、经纬度等。 以下是使用Ruby解析AWDB离线库的基本步骤: 1. 下载AWDB离线库文件(通常以.mmdb为后缀)。 2. 安装GeoIP2库,可以通过在Gemfile中添加`gem 'geoip2'`并运行`bundle install`来安装。 3. 在代码中导入GeoIP2库:`require 'geoip2'`。 4. 创建一个GeoIP2数据库对象,并加载AWDB离线库文件:`db = GeoIP2::Database.new('path/to/awdb.mmdb')`。 5. 使用数据库对象查询IP地址的地理位置信息:`result = db.lookup('192.0.2.1')`。 6. 从查询结果中获取所需的地理

修改BIOS.dmi值的好工具

修改BIOS.dmi值的好工具

AWD简单介绍和搭建AWD平台

AWD简单介绍和搭建AWD平台 何为AWD 比赛中每个队伍维护多台服务器,服务器中存在多个漏洞,利用漏洞攻击其他队伍可以进行得分,修复漏洞可以避免被其他队伍攻击失分。 1、一般分配Web服务器,服务器(多数为Linux)某处存在flag(一般在根目录下) 2、可能会提供一台流量分析虚拟机,可以下载流量文件进行数据分析 3、flag在主办方的设定下每隔一定实践刷新一轮 4、各队一般都有自己的初始分数 5、flag一旦被其他队伍拿走,该队扣除一定积分 6、扣除的积分由获取flag的队伍均分 7、主办方会对每个

kukudeshuo的博客 1万+

AWD_bios刷新工具

BIOS升级工具,可升级常见的BIOS,无盘常用到的

关于struts2.5 动态方法调用(DMI)出现错误的解决办法

1. 先上代码 代码结构图如下 2. 展示代码 WEB-INF/web.xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" ...

jl1134069094的博客 854

awdbedit 1.0

AwardBiosEditor1.0_window

AWD BIOS 刷新软件

在Windows下直接刷新BIOS的软件

MyCat 垂直分片和水平拆分

MyCat 垂直分片和水平拆分

快乐的小三菊的博客 6085

Python库 | awdb-0.0.7.tar.gz

资源分类:Python库 所属语言:Python 资源全名:awdb-0.0.7.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059

各个常用数据库的扩展名/格式/后缀/端口

Access数据库的扩展名是.mdb MSSQL数据库的扩展名是.mdf MySQL数据库的扩展名是.myd Paradox数据库的扩展名是.db Oracle数据库的扩展名是.dbf dBase数据库的扩展名是.dbf FoxPro数据库的扩展名是.dbf MS Works数据库的扩展名是.wdb 数据库 扩展名 Access .mdb MS...

ImDone的博客 1万+

LabVIEW状态机实战:用STM32+DHT11搭建温湿度监测系统(附完整VI源码)

本文详细介绍了如何利用LabVIEW状态机模式与STM32微控制器、DHT11温湿度传感器构建温湿度监测系统。通过硬件选型、状态机设计、LabVIEW程序实现及系统优化等环节,提供了一套完整的解决方案,并附有VI源码,助力开发者快速实现嵌入式温湿度监测应用。

weixin_42549723的博客 524

科研效率革命:Zotero与Web of Science联动实现千篇文献一键获取

本文详细介绍了如何利用Zotero与Web of Science联动实现科研文献的高效管理,包括批量导入、智能下载和自动整理千篇文献的技巧。通过精准检索、RIS文件导出和Zotero插件设置,科研人员可以大幅提升文献获取和管理的效率,特别适合开题报告和综述写作等场景。

weixin_29219539的博客 255

PDO的三种数据库连接方式

在使用PDO连接数据库之前,先要对PDO安装和配置 base.php如下: <?php header('Content-Type:text/html;charset=utf-8'); //数组调试函数 function show_bug($msg){ echo ''; print_r($msg); echo ''; } ?> 1.pdo通过参数形式链接数据库 incl

u014796999的博客 1万+

complier lab2

只需支持定义 main 函数即可不带参数 int main(){...}带参数 int main(int argc, int argv){...}

qq_43581843的博客 908

android 如何将数据库打包到apk中发布

可以将db文件复制到Eclipse Android工程中的res\raw目录中。所有在res\raw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。 在Android中不能直接打开res\raw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD

kathycat726的专栏 1527

matlab液体湿润模拟,【水文模型】01 三水源新安江模型

目录一、概述1.1 流域概况1.2 产流方式论证1.3 设计基本任务1.4 设计原始资料二、新安江模型2.1 流域划分2.2 产汇流计算2.2.1 蒸散发计算2.2.2 产流计算2.2.3 水源划分2.2.4 汇流计算2.3 模型参数2.3.1 参数物理意义2.3.2 参数率定结果2.4 模拟结果2.4.1 精度统计表2.4.2 计算与实测流量过程线比较三、精度统计与误差分析3.1 精度统计3.2...

weixin_34173656的博客 5328

香橙派R1 Plus LTS变身无线AP/客户端:手把手教你用RTL8811CU和MT7601U网卡刷OpenWRT

本文详细介绍了如何将香橙派R1 Plus LTS开发板通过RTL8811CU和MT7601U两款USB无线网卡刷入OpenWRT系统,实现无线AP热点发射与客户端接入的双重功能。从硬件选型、驱动安装到双网卡协同配置,提供完整的实战指南,帮助用户快速搭建稳定高效的无线网络解决方案。

weixin_30919429的博客 410
上一篇: 看nt下无驱执行ring0代码
下一篇: 关于BIOS效验和
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值