给AMI BIOS 添加SLIC表及修改过程中的分析资料
作者:NopWorld
在AWARD BIOS成功修改一段时间后,AMI BIOS的修改也已经突破了难关,成功的例子很多,这里要感谢众多的使用AMI BIOS的主板的拥有者,是他们的无私奉献,使得AMI BIOS添加SLIC表的技术越来越成熟。
下面以ASUS P4P800SE的V1012测试版BIOS为例,分析一些修改的内容。
运行MMTOOL V3.12,点击“Load ROM”,选择下载到的P4P800SE-ASUS-1012.ROM(记得将原来的.001后缀改成.rom后缀)。选择Extract标签,然后选中ID中的1B(Single Link Arch BIOS)模块。“Extract Module”要选中“In uncompressed form”,否则会以压缩的形式解压。点击“Browse”选择模块的保存路径,这里是“C:OEMSLICZOCS1b.bin”,然后按“Extract”按钮解压。此时可以关闭该软件,也可以不关闭。
用IDA 5.0打开“C:OEMSLICZOCS1b.bin”,操作步骤如下:
1、按“确定”就行了。
2、这里选择No。
3、选中“String”标签,直接用键盘输入OEMB,并回车。
4、这时会转到IDA View-A窗口。这个OEMB也是一个表,表长有0x3FH字节。在该表后面的非FF FF数
据中,按“C”。
5、这时数据会被反编译成汇编代码,如果发现有些地方没有被反编译,直接在该位置按“C”就可以了。
说明:模块1B在BIOS的启动过程中,被解压到低位内存,而RSDT表在低位内存中的位置,为CS:[0000]。
也就是说,所有表中,任意一个表从RSDT表中的R字符开始的偏移量XXXX,就是CS:[XXXX]中的XXXX,CS:[XXXX]代表了该表被解压到低位内存中的位置。并且,这些表的任意数据是可以直接通过如“mov byte ptr cs:[22C], 0”之类的代码来修改的,无须关心内存是否只读的问题。
从CS:[0000]开始,各表对应的偏移:
CS:[0000] 对应RSDT表
CS:[0100] 对应XSDT表
CS:[0200] 对应FACP (第一个)表
CS:[0290] 对应FACP (第二个)表
CS:[0390] 对应APIC表
CS:[03F0] 对应DSDT表
CS:[3B60] 对应FACS表
CS:[3BA0] 对应OEMB表
===============================下面对这些汇编代码作简要的分析============================ seg000:3AFC8 push cs
seg000:3AFC9 pop ds
seg000:3AFCA mov cs:byte_22C, 0 //mov byte ptr cs:[22C], 0
seg000:3AFD0 mov ax, 1497h ;
seg000:3AFD3 call far ptr 0F000h:8B8Eh
seg000:3AFD8 jz near ptr loc_B0AB+2 // JZ 3B0AD
seg000:3AFDC xor ax, ax
seg000:3AFDE mov es, ax
seg000:3AFE0 mov eax, 3CCh ;
seg000:3AFE6 mov esi, cs:[eax+4] //CS:[03D0]中的值为FEC00000
seg000:3AFEC mov eax, es:[esi]
seg000:3AFF1 cmp ax, 0FFFFh ;
seg000:3AFF4 jz near ptr loc_B0AB+2 //若ES:[FEC000]的值的低位为FFFF则跳转seg000:3AFF8 xor eax, eax
seg000:3AFFB mov ax, cs
seg000:3AFFD shl eax, 4
seg000:3B001 add eax, 3BDFh ;
seg000:3B007 push eax
seg000:3B009 mov ax, 17h
seg000:3B00C push ax
seg000:3B00D call far ptr 0F000h:48AEh
seg000:3B012 add sp, 6
seg000:3B015 or al, al
seg000:3B017 jz short near ptr unk_B022
seg000:3B019 mov di, 3BDFh ;
seg000:3B01C cmp byte ptr cs:[di], 0FFh ;
seg000:3B020 jnz short loc_B067
seg000:3B022 push 2
seg000:3B024 call far ptr 0F000h:48AEh
seg000:3B029 add sp, 2
seg000:3B02C or dx, dx
seg000:3B02E jz short near ptr loc_B0AB+2
--------------------------------------APIC表从CS:[0390]处开始。开始生成APIC表中的相关数据--------------------------- seg000:3B030 push ax
seg000:3B031 xor ax, ax
seg000:3B033 mov es, ax
seg000:3B035 mov esi, cs:dword_3B4
seg000:3B03B mov eax, es:[esi+23h] ;
seg000:3B041 and eax, 3Fh
seg000:3B045 mov di, 3BDFh ;
seg000:3B048 push di
seg000:3B049 mov cs:[di], al
seg000:3B04C xor ah, ah
seg000:3B04E mov cx, 10h
seg000:3B051 test dx, 1
seg000:3B055 jz short loc_B05F
seg000:3B057 cmp ah, al
seg000:3B059 jz short loc_B05F
seg000:3B05B inc di
seg000:3B05C mov cs:[di], ah
seg000:3B05F inc ah
seg000:3B061 shr dx, 1
seg000:3B063 loop loc_B051
seg000:3B065 pop di
seg000:3B066 pop ax
seg000:3B067 mov si, 3BCh ;
seg000:3B06A movzx cx, al
seg000:3B06D xor ah, ah
seg000:3B06F mov al, cs:[di]
seg000:3B072 cmp ah, al
seg000:3B074 jge short near ptr loc_B077+1
seg000:3B076 mov ah, al
seg000:3B078 mov dword ptr cs:[si+4], 1
seg000:3B081 mov cs:[si+3], al
seg000:3B085 add si, 8
seg000:3B088 inc di
seg000:3B089 loop near ptr loc_B06C+3
seg000:3B08B mov cx, 1
seg000:3B08E or cx, cx
seg000:3B090 jz short near ptr loc_B0AB+2
seg000:3B092 mov si, 3CCh ;
seg000:3B095 add cs:[si+2], ah
seg000:3B099 add si, 0Ch
seg000:3B09C loop near ptr loc_B091+4
-------------------------------------------------------------------------------------------------------------------------------------------------seg000:3B09E mov cs:byte_22C, 1
seg000:3B0A4 mov esi, 390h ; //复制APIC的指针到RSDT、XSDT后面
seg000:3B0AA call near ptr byte_B1DE//CALL 3B1DE
seg000:3B0AA //RSDT指针+390=APIC的指针,CALL 3B1DE是为了将该APIC指针复制到RSDT表中
相关知识
给AMI
壹生资讯
在学习压力大时,我通常通过做运动来放松自己,因为做它要花 的翻译是:When stressed, I usually exercise to relax, do it because you want to spend 中文翻译英文意思,翻译英语
德国花卉园艺行业呼吁支持 俄罗斯花卉进口大幅下降 | 每周国际花讯
德国花卉园艺行业呼吁支持 俄罗斯花卉进口大幅下降
什么时候给月季换土比较好?给月季换土要注意什么问题?
怎么给花浇水 给花浇水的技巧
如何给花施肥 给花施肥有哪些方法
天府周末•品读|穿越时空,探寻古代巴蜀与南亚的交流过往——评汤洪《古代巴蜀与南亚的文化互动和融合》
如何给花卉施肥
网址: 给AMI https://m.huajiangbk.com/newsview104626.html
上一篇: 物联网农业信息化 |
下一篇: 智慧城管九大子系统方案.doc |