教你利用现有SLIC2.0BIOS平稳升级SLIC2.1(9.23更新,解决phoenix压缩BIOS修改中)BIOS本帖最后由r300于2009-9-2316:25编辑更新进行中,文章末尾新方法。。。对于修改BIOS后提示校验错误无法刷新的BIOS,可以尝试BIOS下的刷新工具phlash16.exe。本文首发BIOS之家(ID:r300),转贴请务必注明出处和原作者。这篇文章只是提供大家一种思路,并不是所有的BIOS都适用于此方法,对于无法用此方法修改的BIOS,还有其他方法可以尝试,请大家参考“BIOS之家”其他文章,或请求他人帮助修改。对于一些BIOS无法搜索到关键字问题(BIOS模块压缩),在阅读了BIOS之家诸位前辈的文章后,终于有了思路,现提供PhoenixBIOS的解决思路(参看例3)。感谢大家的支持,文章发布后,收到了不少朋友的消息,有些朋友不太敢修改,想让我帮忙。我很乐意帮助大家修改,不过无奈请求的人太多,自己的时间精力又实在有限,所以只能帮助极少部分朋友,对于没有回复的朋友希望你们能理解。我会尽量完善文章,争取把易出错的地方写到最详细,步骤写到最简明,再次谢谢大家的理解。该方法其实主要是针对笔记本PhoenixBIOS的,因为Phoenix没有其他简易的修改办法。这个方法不对BIOS进行整体编辑,只要确保修改位置正确,没有修改到其他非SLIC部分,即便修改错误也是绝对不会出现开不了机的现象的。相对其他对BIOS进行整体编辑的办法来说,这个很安全的,修改时注意胆大心细即可。SLIC表分为表头,SLPPubkey,SLPMaker三部分共374字节(SLIC2.0,2.1大小相同),绝大部分BIOS中均为明文存放,所以可以直接用简单的替换法实现SLIC2.0BIOS平稳升级SLIC2.1。如果想进一步了解SLIC表的构成,可以参阅BIOS之家Killergd00的文章:http://www.bios.net.cn/bbs/thread-66783-1-2.html相信坛子里大多数朋友都已经有了SLIC2.0的BIOS,现在正发愁如何将SLIC2.0的BIOS升级到SLIC2.1。本文将举HP和VAIO两例说明如何修改现有BIOS完成这个过程。首先请准备如下工具:原SLIC2.0的BIOS(升级程序和ROM),新的相应品牌SLIC2.1(如果对SLIC结构不熟悉还需要原SLIC2.0作对照),WinRAR,UniversalExtractor(UniExtract),WinHEX(或其他16进制编辑器)。原SLIC2.0可以用SLIC_Dump_TooKit来查看,SLIC2.1可以从大粽子的帖子中去下载。例一:HPCompaqPresarioB1900(已经验证成功):1.从官方获得包含SLIC2.0的BIOS(自己修改过的包含SLIC2.0的BIOS也可以,也可以自行将原BIOS备份出来,这个不在本文讨论范围之内,如有需要请从BIOS之家查阅相关文章)。本文获得的是sp35666.exe。是InstallShield封的安装包,可以直接用WinRAR解压(对于有的封包方式只有用UniExtract解包,这个在VAIO的例子中当另加说明)。解压获得30BAF15Win.exe,仍然是一个zip自解压程序,继续用WinRAR解压,这时候得到程序和目录若干。在\Winphlash\RomFile目录下发现30BAF15.ROM,这个就是原BIOS,也就是我们要动刀的地方了。如何判断哪个文件是原BIOS文件?BIOS文件通常扩展名是ROM,WPH,BIN。整1MB或2MB大小。主文件名中包含完整或部分BIOS版本信息。2.用WinHEX打开需要修改的BIOS文件(本例中:30BAF15.ROM),按Ctrl+F弹出搜索框输入SLIC回车搜索,结果定位在00030413处。观察可以发现这个是SLIC表的SLPMaker部分。搜索结果:原SLIC2.0作为参照:有人问如何确定“表头”“Pubkey”和“Maker”,这三部分长度是固定的分别是24H,9CH,B6H,对比原表就很容易确定。并不是所有品牌都是用SLIC做关键字来确定SLPMaker部分,可以参照下表选定关键字:ACER:ACRSYSACRPRDCTASUS:_ASUS_NotebookWINDOWSDELL:B10KCL09FX09M09PE_SC3QA09(DELL-Alienware)DELLWN09FUJITSU:FUJPCGIGABYTE:GBTGBTUACPIHP:HPQOEMSLIC-MPCLENOVO:LENOVOTC-5HLENOVOTC-5MLENOVOCB-01LENOVOTC-5IMSI:MSI_NBMEGABOOKTOSHIBA:TOSCPLTOSCPL00TOSINVTOSINV00打开SLIC2.1(本例为HPQOEMSLIC-MPC.BIN),将对应SLPMaker部分(C0-175)选中并复制切换到BIOS编辑窗口(本例为30BAF15.ROM),选中整个SLPMaker部分,用鼠标左键点选该部分开头,确保蓝色高亮选框出现在SLPMaker头部。此时按Ctrl+B(千万别搞错,不是CTRL+V)进行粘贴。会出现提示框,确认起始位置没错后,点OK键将进行替换。操作完成后请确保操作正确没有影响到BIOS其他部分。继续修改,按CTRL+F,搜索RSA1,定位后对照SLIC2.0可确定SLPPubkey位置。从SLIC2.1文件中复制对应部分(24-BF),切换回BIOS编辑窗口,选中整个SLPPubkey,并用鼠标左键点选开头,确保蓝色高亮选框出现在选中的SLPPubkey头部。仿照前步此时按Ctrl+B粘贴,确认。3.该型号的BIOS中并没有包含SLIC表头部分,不用担心,这部分开机时BIOS会自动生成,既然没有也就不用替换了。4.将修改后的BIOS保存,执行\sp35666\30BAF15Win目录下的BFA.exe按照提示刷机。5.重新开机后你的机器就已经变成SLIC2.1了,导入证书并更改序列号(这个过程网上讲的太多的,不用我再说了吧),接下来要做的就是体验完美激活Windows7的快感吧!例二:VAIOSZ(很多细节就不重述了,参考HP的部分吧)其实VAIO的BIOS结构更为简单,因为整个SLIC表在BIOS中是一个整体,并没有分开,所以只需一次替换即可。1.从官方获得包含SLIC2.0的BIOS升级程序PHBSYS-01041232-US.EXE,用UniExtract解包,将目录PHBSYS-01041232-US\TEMPEXEFOLDER下的PHBSYS-01041232-UN.EXE再次解包,得到如下文件。可以判断出R0112N0.WPH即为需要修改的BIOS文件(方法参照HP部分)。2.用WinHEX打开R0112N0.WPH,搜索SLIC即可定位到完整的374长度的SLIC。3.待VAIO的SLIC2.1泄漏后,直接替换此处并刷新即可将原有SLIC2.0替换为SLIC2.1。例三:Phoenix压缩模块处理需要注意的是这种修改方法相对上述两种状况要复杂的多,本部分由于本人没有对应机型无法验证,请先阅读如下文章,会有助于理解本文。在此要感谢下述文章的作者,这部分内容很大程度上都是对他们研究成果的应用。1.新phoenixbios的bioscode的压缩和修改的问题bygamesplay2.新phoenixbios的bioscode的压缩byzhaoliang3.新phoenixBIOS分析byzhaoliang所需工具下载:BIOS.rar(869.86KB)对于无法搜索到SLIC关键字的BIOS文件,很可能是模块压缩过的PhoenixBIOS。根据本文的思路,我们只要找到压缩过的模块进行替换就可以了。本文暂以VAIOSZ5-7系列的BIOS,R0122S5.WPH为例来讲述修改方法和思路。一、由于无法搜到SLIC关键字,我们可以初步判定BIOS模块被压缩。二、使用phnxsplitR0122S5.WPH命令可以对BIOS各模块解压进行分析。执行成功后可获得ACPIxx.rom,BIOSCODExx.rom等文件若干。三、根据经验,SLIC表会被保存在ACPIxx.rom或BIOSCODExx.rom中,我们需要把获得的这些文件在WinHEX中逐一打开,搜索SLIC关键字。本例中ACPI08.rom即是完整的SLIC,也有的BIOS会将SLIC模块保存在BIOSCODE中。查找phnxsplit的处理记录可以发现:Foundmoduleatposition0xFD72.TypeA,number08,blocklength423.possiblelzintcompression(1,18F).pos64918orig387pack387其中TYPEA表示ACPI,Number08即为序号,这部分记录指出了压缩后的SLIC模块在原BIOS文件的0xFD72处。按ALT+G输入FD72,可以定位到SLIC表处:我已在图中根据赵大的分析将表头关键部分意义作了标记。根据压缩部分标记02可知,该表为压缩表。根据表长部分数据“A70100”,可以获得该表长为“0001A7”即1A7。请注意表长数据是高低位倒写的。两位一组原来记录(A70100)实际为(0001A7)即1A7,如果原来为(8C0000)实际为(00008C)即为8c根据表长从0xFD72出开始选择长度为1A7的数据(选择数据的长度可以从WinHEX的状态栏右下角Size处查看),所选数据即为压缩过的SLIC表。我们将新的SLIC2.1表改名为SLIC.bin保存于下载工具的ADDMOD目录下,替换原文件,执行apci.bat即可得到ACPI.MOD,该文件即是包含SLIC的ACPI模块,我们只需将该文件修改并替换原BIOS中压缩过的SLIC模块即可。需要修改的部分有ACPI表序号,头部校验和,模块校验和。更新尚未结束,新方法还未验证,本人将尽快完成,感谢关注。