返回列表 发帖

最新Phoenix BIOS官方版完美修改SLIC激活vista教程!完美bios(转tiger大侠教程.)

序言:
最新Phoenix BIOS官方版完美修改SLIC激活vista教程!附新版L41II1完美bios!!!(转OEMfans原技术小组tiger大侠教程.)

第1部分:
最近通过查看一些带完整原生slic的bios,发现厂商修改的bios大部分都不是将slic作为一个单独acpi模块文件,这和大家以前的修改方法是不一样的。于是想自己动手试试用厂商这种方法修改我的神舟F205S的bios,经过远景赵亮大侠的指点终于搞定了,现把方法整理出来供大家参考,希望对用PhoenixBIOS的兄弟有所启发。
其实现在好多Phoenix BIOS都是带原生slic的,只不过有可能刷新后用everest查看不到(解决方法看后面部分内容),比如GERICOM的1.11版L41II8的bios,大家刷了后可能发现用everest查看没有slic,其实bios里面是有的,只不过是片段,没有整合成完整的slic表。还有的兄弟自己加了单独的slic表刷新完后发现显示2个slic表,这其实也是因为bios里面原生的slic在捣乱。本文的任务就是不使用加acpi模块的方法添加slic表,而直接利用这种原生的slic使其成为真正意义上可用的完整SLIC。首先判断你的bios是不是带原生slic(这里说的原生slic包括未能显示的)可以根据以下2点:
1. 在bioscodeX.rom(X一般为1)中能搜索到slic表的表头信息(oemid和oemtable可能为空或者是test之类的信息)

2. 在holeX.rom或者MOD_4A0X.ROM中能找到slic表的pubkey和marker部分


如果你的bios符合以上2点基本就可以肯定你的是带原生slic的bios。因为上面3部分内容构成了完整的slic表(注意完整的slic表中的表头和bioscodeX.rom中的表头有几个字符不一致,这个是由后面内容自动生成的,不用理它的)。

对于这种bios,首选需要核对这3部分的信息是否是同一厂商的,不是的话需要改过来,另外还需要核对RSDT的信息是否和SLIC信息一致,不是的话也需要改过来,以上工作完成后如果你的bios本来就能显示slic表,刷完修改的基本就可以激活了,但是也有些bios刷新完修改了的bios之后,再查看slic表发现还是原来的,或者有的bios满足上面的条件,但是用everest查看不到slic表,下面来讨论这种特殊的bios,这也是本文的重点。
第一种原因:
你的bios加了判断条件,,如果判断失败,复制SLIC表头的代码就不会执行,满足条件才显示slic表,下面以我的bios为例,具体bios判断条件可能不一样的,仅供参考原理:
经过对同型号机型的显示slic的bios和不显示slic的bios反编译对比发现如下代码
seg000:D9CF call far ptr 0F000h:48B6h
seg000:D9D4 push ds
seg000:D9D5 push 0F000h
seg000:D9D8 pop ds
seg000:D9D9 assume ds:nothing
seg000:D9D9 mov eax, ds:48B2h
seg000:D9DD pop ds
seg000:D9DE assume ds:nothing
seg000:D9DE cmp eax, 22995668h
seg000:D9E4 jnz short loc_DA1D
得出结论0F000h:48B2h处的代码如果是 22995668h ,就会有 SLIC表,22995668h 对应的字符为“hV”。经过搜索,在显示slic的bios的HOLE5.ROM中发现字符“hV”,而不显示slic的bios的HOLE5.ROM中则全是“FF”,这就是判断条件!


所以用带“hV”的HOLE5.ROM替换不带“hV”的HOLE5.ROM即可刷出slic来。如果修改了HOLE5.ROM之后刷新完bios发现还是没有slic表,那就是第二种原因引起的了:
第二种原因:
你的bios的尾部加了刷新过滤规则,下面还是以我的bios为例,具体bios尾部的刷新过滤规则可能不一样的,仅供参考原理:
经过比较尾部(关于尾部请看本帖2楼介绍),发现新版bios的尾部比旧版bios的尾部少了2行,没有 F4 和 F5,就是不刷 FFF40000 和 FFF50000,也就是不刷 HOLE5 和 HOLE3这2个模块。事实上刷新的时候也是这样的,一个提示刷新17个模块,一个提示刷新19个模块。

解决方法就是用旧版bios的整个尾部替换新版bios的整个尾部即可,或者也可以手动添加这2行。
至此,使用新方法修改bios成功。相对于以前大家手动加一个acpi模块的方法,这种方法更完美一些,这也是官方的修改方法。
其实原来的1.07自带富士通slic的bios之所以不能激活富士通vista,是因为里面的rsdt不是富士通,pubkey和marker也不是富士通的,把这3个地方改过来就可以的。我试验新方法过程中第一个改成功的就是1.07的,里面没有判断条件尾部也没有过滤!还有TCL的1.10的官方bios也是采用这种改法的!这次修改的1.11用的hole5.rom是从tcl1.10中提取的,尾部用的是1.07里面的尾部。
最后,想到一点:记得有人说ibm的bios是一样的,刷到带原生slic的机子里就有slic,刷到不带原生slic的机子里就没有slic,是不是也是靠尾部不刷类似hole5的判断条件实现的啊?期待赵兄能最终能搞定ibm这个问题!
再次感谢赵兄的帮助,谢谢!
第2部分:
完整的Phoenix BIOS=“主bios”(0000~FFFF部分)+“尾部”(10000后面的一小部分)!

winphlash备份出来的 BIOS 文件的“尾部”不是从 BIOS芯片中读出来的,而是取自在“Specify new BIOS file”那一栏的BIOS的文件。winphlash 的备份BIOS的方式:
1、读入“Specify new BIOS file”那一栏的BIOS的文件,分析BIOS的原大小,(winphlash 并不会判断内存 FFF00000~FFFFFFFF 中的内容来分析BIOS的实际大小)如果 new BIOS 的实际大小是 512 K 就读出内存的 FFF80000~FFFFFFFF 中的内容,如果 new BIOS 的实际大小是1024K 就读出内存的 FFF00000~FFFFFFFF 中的内容,依次类推。
2、把步骤 1 中读出的内存内容 和 new BIOS 的“尾部”合成一个文件。这个文件就是你备份出来的 BIOS 文件。

注意:
1. 不带尾部的Phoenix BIOS是直接刷新不了的,只能用编程器刷。
2. 建议用1.3安装版的winphlash进行备份,因为其他版本的winphlash备份出来的bios尾部会少了下面图中选中的几个字节。
3. 备份的时候用来做诱导的“新”bios如果不是本机bios的话备份出来的尾部可能不对,故推荐采用原机型能刷新的旧版bios做引导提取备份出本机bios。
第3部分:
呵呵,顺便把新方法修改的bios放上来(不用再担心用以前的方法修改而多加进去的acpi模块影响bios稳定性了,绝对完美修改,效果和官方改的一样),可以激活神舟vista,惠普和联想的xp,bios里面所有的L41II8(包括不显示的)全部改为L41II1了,建议带dmi刷新,另外bios厂商信息GERICOM也全改为Tiger81了,L41II1-1.11-NEW的logo用的是旧版神舟logo,L41II1-1.11-NEW2的logo用的是新版神舟logo(借用Yangzai 兄弟的新logo),不喜勿下!喜欢的就拿去刷吧!
第4部分:
这是神舟的新优雅T500的bios,官方就是用的这种改法:hole1里面是pubkey,hole2里面是marker!

[ 本帖最后由 skycn123 于 2008-11-29 15:19 编辑 ]
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
2

评分人数

  • bjlqy

  • xsj777

不在是BIOS首席修改执行官助手
学习修改BIOS请看我整理发上的的技术文档!
坚守BIOS破解研究二年矣,无精力......本人也不在打探联想及OEM消息了。正式退出,金盆洗手!有事问K大,请不要PM我了,谢谢!
本人已无多余的精力去研究BIOS了!只能对大家说声抱歉了!

好帖!学习了!!!!!!!!!!!!!!!

TOP

先收藏了,慢慢地学习
人生不如事,十有八九,要常想一二啊!给自己疲惫的心灵放个假,彻底放松一下吧!做点想做的,说点想说的!

TOP

#*88 #*88 分这么从包呀
VISTA最新OEM信息自动安装包
http://www.bios.net.cn/bbs/thread-22699-1-1.html
[fly]个人空间http://xsj777e.ys168.com/ [/fly]

TOP

很久没有看到有营养的帖子啦,,反汇编是用IDA么

TOP

感谢楼主#*95 #*95 #*95

TOP

学习了!是件好东西

TOP

先收藏了,慢慢地学习,消化

TOP

好东西呀!!

TOP

没看懂啊。。。。但是觉得很有用啊~~~现在最想做的就是激活那个联想启天M8000

TOP

返回列表