本楼写给那些对刷BIOS心有余悸的人,很多内容取自网络~~
先说说保护机制,Vista的过来人都知道,Vista使用了传说中的SLIC 2.0版本
微软公司用SLIC来控制用户对OEM版本的非法使用。在XP时,就使用了SLIC 1.0,但是1.0版本的SLIC是明文,很容易被破解,而且XP存在“大客户”这种生物,至少我装的都是VLK版,也可以通过正版验证。
于是,在SLIC 2.0时代,公钥取代了明文,进行了加密。具体的激活(验证)流程如下:
1、当Vista安装的时候,零售版本用户需要输入光盘盒上的序列号(CD-KEY)。对于随机购买了OEM版本Vista的用户,可以在主机上找到一个相应版本的标签,作为购买Vista OEM版的凭证。标签上面有一个带有象征意义的序列号,因为OEM版本的用户并不需要输入序列号。系统根据序列号识别Vista的不同版本,如基本家庭版、高级家庭版、商业版、旗舰版等。安装完毕后,序列号会被转换为四组字母或数字,即在“系统属性”里看到的“产品ID”。其中第二组是“OEM”的,即为OEM版本的序列号(CD-KEY)。从这里开始,产品ID代替了CD-KEY。同时,安装程序为OEM版本的安装生成一个OEM证书。
2、当每次系统启动时,BIOS里的信息就会被加载到内存中。
3、当登录Vista系统之后,系统调用SLP服务,验证操作系统的许可权,尤其是激活状态。开始根据产品ID来识别系统的授权状态。如果没有检测到产品ID或者没有检测到合法的零售版产品ID,则视为未激活。如果检测到合法的零售版产品ID,则视为成功激活。如果检测到OEM版的产品ID,则继续验证。
4、如果检测到OEM版产品ID,验证过程启动,并检查已安装的OEM证书是否正确。主要是用先前从BIOS加载到内存里的SLIC的公钥验证产品证书的数字签名。如果验证失败,则视为未激活。
5、验证ACPI里SLIC与RSDT(Root System Des cription Table,根系统描述表)的OEM ID字段比较,以及用ACPI里SLIC标志和XSDT(Extended System Des cription Table,扩展系统描述表)中的OEM ID和OEM Table ID字段比较,如果不一致,则视为未激活。
6、经过以上重重关卡之后,方视为正确的OEM授权,否则视为未激活并按照相关流程处理,例如要求激活。
所以说,当年听说过刷BIOS的人,都是这么来的,用网上下载的BIOS文件,找到ACPI里面的SLIC字段,将其替换为网上收集的相关OEM信息,刷入系统就可以了。
当年我用的P5B-Deluxe就是自己写的BIOS。期间黑了2次,还好华硕的板子刷不死,不然只能返厂了。
进入Win7阶段,SLIC进入了2.1时代。根据激活原理,将小黑BIOS中的SLIC替换就可以进行激活了。 |