“超静二”中AMIBIOS模块地址的确定方法.docVIP

  • 7
  • 0
  • 约1.06千字
  • 约 4页
  • 2017-08-11 发布于重庆
  • 举报

“超静二”中AMIBIOS模块地址的确定方法.doc

“超静二”中AMIBIOS模块地址的确定方法

计算法 -------- “超静二”中 AMI BIOS 模块地址的确定方法 在“超静二”中为了把修改后的模块替代到原BIOS文件中,必须首先确定模块在BIOS文件中的首地址。常规的方法是采取不解压缩释放出模块,应用软件(WINHEX等)的搜索功能去定位,论坛上有不少介绍,在此就不赘述了。这里要介绍的是一种通过计算的方法实现,现以修改ASUS A6JAS.218 为蓝本介绍如下: 由于只介绍获得1BH模块首地址,所以其它过程略。 一、用MMTOOL打开BIOS文件。见图一。 下载 (85.94 KB) 2008-11-29 12:25 从图一,我们可以知道地址为B000:C5AC,换算成物理地址就是BC5ACH。这个地址是在1M空间的地址。 下载 (73.43 KB) 2008-11-29 12:28 二、用WINHEX打开BIOS文件,到文件最后。见图二。 最后地址为7FFF0H(这是有BIOS容量决定的)。我们把这个地址换算到1M的空间去。 0FFFF0??- 7FFF0 = 8000H(这个常数会随BIOS文件容量不同而不同,比如,对于1MBIOS,它就是 0 ),也就是说BIOS文件在WINHEX中地址加上8000H就是它在1M空间中的地址。正是基于这个规律,我们得出如下公式: BIOS文件在WINHEX中的地址 =??BIOS文件相对于1M空间的地址??-?? 常数(这里就是8000H)。 三、计算地址 从一中我们知道1BH 在1M空间的地址是 0BC5ACH,常数是8000H, 所以1BH模块在WINHEX中的地址就是: 0BC5ACH? ?- 8000H??=??3C5ACH 我们通过释放模块内容验证,它正是释放出的无压缩模块的的首地址。这里还有一个问题,释放出无压缩模块的地址是否就是1BH模块的地址呢?通过内容比对,我们发现释放模块的长度较实际模块长度少了 14H 。这少了14H字节就是模块的“头部”,因此,正确的1BH模块首地址应该减去模块头部的长度即 14H。 所以 最后得出首地址是:3C5ACH? ?- 14H??=??3C598H。从图一中我们查的1BH模块的长度是 2CD98H,那么,从3C598H 到 69C2F ( = 3C598H + 2CD98??- 1 )间的内容就是完整的1BH模块内容。 地址确定了,因为修改前后地址是保持不变的,所以把内容移植就是很容易的事了(见图三、四)。 下载 (73.21 KB) 2008-11-29 12:28

文档评论(0)

1亿VIP精品文档

相关文档