网站大量收购独家精品文档,联系QQ:2885784924

给AMIBIOS添加SLIC表及其修改过程中分析资料.doc

给AMIBIOS添加SLIC表及其修改过程中分析资料.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
给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:\OEMSLIC\ZOCS\1b.bin”,然后按“Extract”按钮解压。此时可以关闭该软件,也可以不关闭。 用IDA 5.0打开“C:\OEMSLIC\ZOCS\1b.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 表 上面的GS:[AD70] 、GS:[AD78]可以从以下代码得出(搜索PTR就可以找到赋值的地方): seg000:18791 mov edi, fs:1060h //填充RSD PTR后面的数据 seg000:18797 mov di, 0 //将来自于FS:1060H的指针的低位置为0000 seg000:1879A mov gs:dword_AD70, edi //很明显,这里的EDI是赋值给RSDT的指针 seg000:187A0 mov di, 100h ①如果是将XSDT前移,这里要修改100H为新的偏移 seg000:187A3 mov si, 0AD78h seg000:187A6 mov gs:[si], edi //很明显,这里的EDI是赋值给XSDT的指针 seg000:187AA mov dword ptr gs:[si+4], 0 seg000:187B3 mov si, 0AD60h seg000:187B6 mov dword ptr gs:[si], //字符串“RSD ” seg000:187BE mov dword ptr gs:[si+4], //字符串“PTR ” seg000:187C7 mov ax, 1496h ; seg000:187CA call far ptr 0F000h:8B8Eh seg000:187CF jz short near ptr unk_87D7 下面对这些汇编代码作简要的分析 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 x

文档评论(0)

nnh91 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档