- 7
- 0
- 约1.06千字
- 约 4页
- 2017-08-11 发布于重庆
- 举报
“超静二”中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)