AWARD BIOS超级静态法三教程超详细步骤Word格式文档下载.docx
《AWARD BIOS超级静态法三教程超详细步骤Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《AWARD BIOS超级静态法三教程超详细步骤Word格式文档下载.docx(27页珍藏版)》请在冰点文库上搜索。
本文使用的MODBIN6修改工具是MODBIN62.01.02版。
本文使用的移花接木定制工具SLICFIX.EXE是070515版。
以上工具可以在“BIOS之家
一、原理简介
大部分AWARDBIOS,在内存的FE000h之前,都有大片的“00”空位,后来发现,在主模块(ORIGINAL.BIN)的对应位置1E000h,它前面100h即FDF00~FE000是空的,但在系统中却写入了一些代码,所以这段地址不能用,但是一般情况下,FDD00~FDF00之间都是空的,这里可以用来写SLIC表,SLIC表的内存地址就是FDD00h,HEX:
00DD0F00。
二、修改前准备工作
1、备份自己的BIOS文件,如:
P35S3L.F6,如果后缀名不是BIN的,要将后缀名.f6改为.bin
2、准备想要激活的OEMVISTA的SLIC表的BIN文件,这里LENOVO.BIN
3、准备软件WINHEX,CBROM1.82、MODBIN6、移花接木定制工具SLICFIX.EXE是070515版
4、在某个盘符的根目录下建立一个文件夹,例如D:
\S3L,把BIOS文件和LENOVO.BIN还有CBROM、MODBIN6都复制到D:
\S3L目录下。
创建WINHEX、命令行提示符快捷方式(可在空白处点右键-新建-快捷方式-请键入项目位置下方输入“cmd”-下一步-命名-完成-然后在此快捷方式上点右键-属性-删除“起始位置的内容”-确定)。
如图:
三、修改实例
1、双击启动命令行提示符,然后输入:
cbromp35s3l.bin/d即可查看BIOS的构成:
如图
SystemBIOS主模块的大小为14D50h,ACPI模块的大小为018E7h(本文中h表示十六进制)。
可以看出此BIOS有MINIT模块,ACPI模块后有EPALOGO模块,大小为2AAh。
有MINIT模块必须在加入模块之前要先把ACPI模块移到所有模块的后面。
2、释放ACPI模块。
在窗口中输入:
cbromp35s3l.bin/acpiextract,回车(Enter)将会释放ACPITBL.BIN,提示文件名为ACPITBL.BIN,再按回车(Enter),在文件夹下将会释放出ACPITBL.BIN。
3、回到S3L文件夹,双击MODBIN6,选中要修改的BIOS文件,
然后按Enter,这时在BIOS文件夹就会生成临时文件:
ORIGINAL.BIN、MLSTRING.BIN、XGROUP.BIN等文件。
这时不要关闭MODBIN6窗口。
双击WINHEX的快捷方式,打开文件:
935s3l.bin、ACPITBL.BIN、LENOVO.BIN、ORIGINAL.BIN,如下图:
选中ORIGINAL.BIN工作窗口,找到位置1E031处,查看此处右边文本栏中的字符的位置,向上移动,看上面是否有300h的00空位,如果有,那么适合本修改方法,如果没有请用超级级静态法一来修改。
用鼠标选中“BIOSCOPYRIGHT”这一行,用CTRL+C复制内容,然后点上图中的图标打开内存,向下移动右边的下拉条,找到Ntvdm#****(位置一般是在Cmd#****的下面),点左边的+号展开,选是“整个内存”,点确定。
这时Ntvdm整个内存就打开来了。
点击上图中的搜索图标,用CTRL+V粘贴刚才复制的文本内容,点确定,再按一次F3,就搜索到了和ORIGINAL.BIN中位置一样的文本了。
这时我们就可以进行修改了。
首先把0005C270这一行中的文本AwardModularBIOSv6.00PG改为:
LENOVOLEGENDDragon6.00PG,这样就加入激活联想XP的字符串(注:
文本AwardModular这一行可以最好添加激活DELL的XP,如果是改激活其它品牌的,可以在NOT FOR SALE后面添加激活相对应品牌的字符串,如LENOVO,有空位00的话,可以添加多个。
如果不是激活DELL的,最好不要在AwardModular这一行中添加,因为有些BIOS刷新软件要检查此处,可能会造成不能刷新)。
然后有字符的上一行最后一个00(此例是:
0005C20F)中的后一个0,按着鼠标不放,向上选,观察右下角的数值,到300h处,即0005BF10(或者用公式计算:
0005C210-300=0005BF10)。
切换到LENOVO.BIN窗口,选中所有代码,用CTRL+C,切换到Ntvdm整个内存窗口,用CTRL+B在0005BF10处开始覆写,完成后可在没有修改处点一下鼠标。
打开MODBIN6窗口,按Enter二次来保存文件。
切换到WINHEX窗口,提示文件已改变,点确定,回到ORIGINAL.BIN窗口,查看,你修改的XP字符串,SLIC有无,位置对不对。
SLIC的开始位置在0001DD00。
如果符合要求,那么修改成功。
这时关闭Ntvdm整个内存、ORIGINAL.BIN,然后关闭MODBIN6。
之后还要做一步的就是用WINHEX打开刚修改过BIOS文件,与原BIOS比较我,查看文件最后是否多了2个相同的字节。
如果是那么请删除。
4、ACPITBL.BIN的修改。
打开WINHEX中ACPITBL.BIN的工作窗口,
(1)把RSDT的表长加4h,这例是34+4=38,即把34改为38;
(2)在RSDT表后加4个00,用来存放SLIC地址。
方法是从RSDT中的R开始选取原表长34,在它后面加入4个00(可以在表中选中4个00,用CTRL+C复制,选中下一表的第一个字符后用CTRL+V来插入)。
然后把这四个00000000改为00DD0F00。
(3)修改OEMID、OEMTABLEID。
切换到LENOVO.BIN窗口,从第一行中的A处开始选取,到第二行中的7处结束,共Eh的长度,用CTRL+C复制,回到ACPITBL.BIN的工作窗口,也是选中第一行中A处,用CTRL+B来覆写。
如果有XSDT表的,修改方法基本一样,也是这三步。
但第一步的修改稍有不同,XSDT的表长要加8,插入8个00,写SLIC地址是写在前4个00中。
详见以下各图:
然后在WINHEX中保存文件。
5、ACPITBL.BIN到所有模块的最后面在加入此文件之前,必须要检查BIOS是否有MINIT模块。
如果有,那么要先用WINHEX把ACPI模块移到所在模块的后面。
这例是有MINIT模块的,所以我们要用WINHEX中打开BIOS文件,选中整个ACPI模块,把它移到所有模块的后面,本例是SBF.BIN的后面。
点搜索图标,输入ACPITBL.BIN,按确定,就会找到这个模块的入口。
在文本ACPITBL.BIN上面一两行有-h5-的字符,它前面的两字节就是这个模块的起始位置。
本例是24,
用右键点中24中的2,点选块开始,点搜索图标,输入AWARDBMP.BMP,按确定,在文本AWARDBMP.BMP上面一两行有-h5-的字符,它前面的三字节就是上一个模块ACPITBL.BIN的结束位置,一般是00,用右键点中00中的后一个0,点选块结束。
整个模块就选中了,用CTRL+X剪切。
然后搜索SBF.BIN,找到后,向下拉动下拉条,不远就会有大片的FF,选中模块后面第一个FF,用CTRL+V粘贴,ACPITBL.BIN就移动到了所有模块的最后面了。
6、加入修改好ACPITBL.BIN在BIOS文件中切换到命令行窗口中,输入:
cbromp35s3l.bin/acpi,回车,ACPITBL.BIN就加入到在BIOS文件中,
7、输入:
cbromp35s3l.bin/d,再次查看BIOS的构成:
此时,我们可以发现,SystemBIOS的大小变成了14FB0h,比原来大了14FB0h-14D50h=260h,ACPI模块大小变成了18FAh,比原来大了18FAh-18E7h=13h,也就是说BIOS比原来变大了260h+13h=273h。
我们把AWARDBMP.BMP这个模块移到所有模块的最后(把这个模块移到最后是因为这个模块不重要,且它的大小与我修改BIOS之后变大的值相差不多,这样用来修正入口添加的OEMS模块就不大。
其实大部分的模块都是可以移动的,并不影响其功能。
如果BIOS文件中MINIT模块之前没有EPA LOGO这个模块,我们可以在MINIT模块之前选择一个较小的模块移到所有模块的后面。
如CPUCODE、OEMX等),又把ACPI模块移回原来的位置,那么2AAh-273h=37h,还是不能修正MINIT模块的入口位置。
还需要增加一个大小为37h模块来填补。
我们可以用赵大侠的移花接木定制生成工具来生成大小合适的OEMX.BIN模块。
但赵大侠的工具不支持小于176h的模块,因此我们可以:
176h+37h=1ADh,十进制是429,等生成了429大小的模块之后,再用WINHEX把前面的SLIC176h剪切掉,那么剩下的就是大小为37h的模块了。
好了启动赵大侠的移花接木定制生成工具,输入429,SLIC可以不用选,按确定后生成一个OEMS.BIN,(十六进制和十进制的计算和转换可用WinXP自带的计算器)
然后我们用WINHEX打开,剪切掉前面的176h,然后保存文件。
8、加入OEMS.BIN。
切换到命令行窗口,输入:
cbromp35s3l.bin/oem7oems.bin,回车。
oems.bin就加入到BIOS中去了。
9、移花接木。
在WINHEX窗口中切换到p35s3l.bin的工作窗口,查找OEMS.BIN,找到刚刚进去的OEM7模块,选取整个模块大小是上面所说的37h,注意用CBROM1.82加入的OEMX模块结尾的标志是FF,不是00,因此选取的时候要选上大片FF的第一个FF。
选好后用CTRL+X剪切,查找AWARDBMP.BIN,左键点中这个模块的起始位置,用CTRL+V插入,OEM7模块就移动到了AWARDBMP.BIN这个模块的前面了。
同样用这种方法,把ACPI模块移动到OEM7模块的前面。
最后把AWARDBMP.BIN移动到所有模块的最后面。
到此修改结束,保存文件。
10、检查修改好的文件当然,你刚才的移位是否正确,以及上面的计算、操作是否有错呢。
我们还要检查修改是否正确。
有刚才的WINHEX窗口中,搜索MINIT模块的文件名:
MEMINIT.BIN,查看这个模块的起始位置,打开原BIOS也搜索MINIT模块的文件名:
MEMINIT.BIN,然后对照下,看看这位置是否一致。
可以看出,两个文件的MINIT模块的入口位置都是0002D25B。
又回到命令行窗口,输入:
cbromp35s3l.bin/d,回车,查看BIOS的构成:
如果能够显示所有模块,而且模块顺序也符合我们的要求,说明修改正确。
最后的一项的检查是查看修改后的BIOS的属性,是否和原BIOS一样大小。
这里要求大小和占用空间都要相同。
如果出现不同的情况,说明修改有误。
有个别的BIOS用MODBIN6修改之后变大了两字节,这就要删除BIOS文件中最后两个多出的字节,这在前文中已经提到了。
11、如果你的BIOS没有MINIT模块,你只要进行到第6六步就好了。
第7步开始,是为了修正MINIT模块的入口。
12、修改过程中,要注意观察CBROM1.82打开文件是否顺畅。
正常的修改,CBROM1.82在命令行提示符中会自动关闭。
如果出现命令行提示符中光标不闪了,要重新启动才能进行操作,说明修改有问题。
特殊BIOS的处理方法,供参考:
一、加密的BIOS
用MODBIN6打开你的BIOS文件,生成临时文件“ORIGINAL.BIN”,用WINHEX打开ORIGINAL.BIN文件,先查找文本“Warning”,大致都在3CC0h左右,再查找十六进制数值“AC8AD8AD0ADB0F84”,一般都在“Warning”的下面第3~4行里把“84”改为“85”。
在MODBIN6中保存文件。
二、不能用MODBIN6打开的BIOS,可用下面的办法修改:
其一种情况是:
BIOS文件大小是1MB的,一般是技嘉的(如965PS3),可用WINHEX打开BIOS文件,把80000~FFFFF另存为一个文件,这个文件即可用MODBIN6打开,修改后,再用WINHEX把文件替换回原BIOS文件即可。
另一种情况BIOS不是1MB的,但用MODBIN6打开时,也会提示错误,可用下面的方法:
释放和导入主模块
以965PDS3.F12为例说明其操作步骤。
1、用winhex打开965PDS3.F12,搜索“-lh5-”,往前数两个字节,那个字节一般都是“24”,例如:
248E2D6C68352D
(2D6C68352D)就是“-lh5-”,
“24”是模块头部的长度,“8E”是模块头部的校验位,这两个字节都不是固定的数值,你只要知道在“-lh5-”之前的两个字节是模块的开始位置就行。
这里设“24”为“选块开始”,然后再搜“-lh5-”,这个“-lh5-”就是第二个模块了,往前数4个字节,这个字节是“00”,因为“-lh5-”模块都是以“00”为结尾的,例如:
00FF25822D6C68352D(注意:
只有主模块后面多一个字节,新BIOS这里一般都是“FF”)这里设“00”为“选块结尾”,这时,主模块就被选中了,然后“复制选块”,“置入新文件”,文件名“main.lha”,用winrar解压“main.lha”,得到主模块文件“965pds3.BIN”
2、winhex打开“965pds3.BIN”,到位置“1E061”,从“1E061”开始修改原来的代码为“DellSystem-”,保存文件。
3、用CBROM1.82输入以下命令:
CBROM965PDS3.F12/OTHER5000:
0965pds3.BIN这时cbrom会提示空间不够(如果有足够的空间可以加入这个模块,那么加入之后你剪切了),不过会生成临时文件“BIOS.ROM”,这个“BIOS.ROM”就是压缩后的主模块。
4、替换原来的主模块
用winhex打开965PDS3.F12,按步骤1的方法选取主模块,然后删除原来的“主模块”。
用winhex打开“BIOS.ROM”复制内容,粘贴插入到原来主模块的位置,注意主模块后面的“FF”不能动。
5、修正BIOS的长度
因为替换的主模块的长度不一定和原来的长度一样,这时,就需要我们来调整可用空间,增加或减少可用空间的“FF”,来保证BIOS文件的大小不变。
1)查看改后的965PDS3.F12的大小,和1048576比较,算出差值。
2)定位可用空间,从主模块开始搜索HEX“FFFFFFFFFFFFFFFFFF”,当找到大片的“FF”之后,那里就是可用空间,增加或减少“FF”,使965PDS3.F12的大小为1048576(100000h)
三、用MODBIN6修改,BIOS文件增加2字节
用MODBIN6调用BIOS文件,修改则该文件增加2字节,可对比原BIOS文件,用WinHex打开修改过的BIOS文件,检查尾部与原BIOS是否相同,这多出的字节是相同的字节,原BIOS是没有的,删除就可以了。
四、新型的AWARDBIOS,ACPITBL.BIN中含ACPI表的加载代码的,也同样可以用这种方法修改。
五、有的BIOS,其MINIT模块在所有模块的最后面,且最后的字节不是以00标志作为模块的尾部,而是FF,甚至有的是2个FF。
在剪切ACPI模块到最后时要特别注意。
判断方法可以根据CBROM窗口中的大小,在WINHEX中从模块开始处选取,观察右下角,直到大小和CBROM显示的大小一致,就可以判断出来了。
作者:
GTLL
2008年1月12日