宏碁电脑系统激活教程-宏碁电脑怎么激活windows
1.宏碁Acer5570z 如何刷bios 激活vista
宏碁Acer5570z 如何刷bios 激活vista
宏碁5570系列bios激活vista完美方案升级BIOS不用再破解
这个bios属于带原生slic的 bios,MOD_4B00.ROM有pubkey,HOLE3.ROM里面有marker,但是刷到有点机子里就可以显slic,有的就没有,分析尾部发现没有F8,不刷新80000到90000部分内容,而查看rom.log发现hole2正好位于这个部分里面,官方网站bios里的hole2里面全是FF。
完美解决方案(猜测,未测试):从带完整原生slic的5570系列机子里提取hole2替换bios里面的,修改尾部加F8强制刷新hole2模块,这样以后升级bios也不需要再破解了!
所以刷了官方bios能显slic的兄弟能把你机子里的bios提取一份出来给我吗? 因为我怀疑你的机子里的hole2不为空。
参考这里:
本文内容是远景赵大侠的研究成果,本人稍加整理。
最近通过查看一些带完整原生slic的bios,发现厂商修改的bios大部分都不是将slic作为一个单独acpi模块文件,这和大家以前的修改方法是不一样的。于是想自己动手试试用厂商这种方法修改我的神舟F205S的bios,经过赵兄的指点终于搞定了,现把方法整理出来供大家参考,希望对用Phoenix的 BIOS(特别是联想机子,因为联想的slic大部分都是这种改法)的兄弟有所启发。
其实现在好多Phoenix BIOS都是带原生slic的,只不过有可能刷新后用everest查看不到(解决方法看后面部分内容),首先判断你的bios是不是带原生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反编译对比发现如下代码
seg0009CF call far ptr 0F000h:48B6h
seg0009D4 push ds
seg0009D5 push 0F000h
seg0009D8 pop ds
seg0009D9 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模块的方法,这种方法更完美一些,这也是官方的修改方法。
最后,想到一点:记得有人说ibm的bios是一样的,刷到带原生slic的机子里就有slic,刷到不带原生slic的机子里就没有slic,是不是也是靠尾部不刷类似hole5的判断条件实现的啊?期待赵兄能最终能搞定ibm这个问题!
完整的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 的实际大小是K 就读出内存的 FFF00000~FFFFFFFF 中的内容,依次类推。
2、把步骤 1 中读出的内存内容 和 new BIOS 的“尾部”合成一个文件。这个文件就是你备份出来的 BIOS 文件。
注意:
1. 不带尾部的Phoenix BIOS是直接刷新不了的,只能用编程器刷。
2. 建议用1.3安装版的winphlash进行备份,因为其他版本的winphlash备份出来的bios尾部会少了下面图中选中的几个字节。
7.jpg ( KB)
3. 备份的时候用来做诱导的“新”bios如果不是本机bios的话备份出来的尾部可能不对,故推荐用原机型能刷新的旧版bios做引导提取备份出本机bios。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。