- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 维修电工高级实操题库.pdf VIP
- 桥梁工程墩柱、盖梁模板支架专项施工方案.doc
- 2024-2025学年苏科版七年级数学下册 第9章 图形的变换 综合素质评价(含答案).pdf VIP
- 移动厕所投标方案(技术标 310页).doc
- 2023年江苏省普通高校单独招生统一考试电子电工单招试卷-B卷.docx
- 2025年成都市公共交通集团有限公司人员招聘笔试备考试题及答案解析.docx
- GB+30871-2022国家新标准规范.pdf
- 学生处处长述职报告范文.pdf VIP
- 国电乐东发电公司配煤掺烧全流程动态优化系统介绍(罗荣).pdf
- GB50433-2018 生产建设项目水土保持技术标准.docx
文档评论(0)