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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
给 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 的指针 se

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档