Windows 7激活原理详解
-
相信很多使用盗版Windows 7系统的都知道如何激活win7,但是你是否知道启动的详细原理呢?本文将详细为您解答Windows 7的激活原理。
一、微软的三大授权方式
要解决这一问题,首先需要全新认识微软的正版验证机制。微软公司一直在加强防盗版方面工作,从Vista开始引入了软件保护平台(Software Protection Platform,简称SPP)技术,对零售、OEM和批量激活采用了不同类型的序列号和授权激活方式。但是从总体上来说,Windows 7的许可授权可分为以下三种方式:
1零售方式。个人选择购买自己喜欢的版本,获得个人授权。用户同时还可以获得表明产品正版的真品证书(Certificate of Authentication,简称COA)。这种方式授权又包括完整授权和升级授权,完整授权是购买一个完整的产品,可以用来安装或者升级,这是所有授权方式中最贵的。升级授权只能用来升级现有系统,比如从VistaWindows 7。该授权由微软公司提供支持,而且是唯一的授权。
2OEM方式。由OEM厂商(比如联想、方正)在出售的电脑中预装,随电脑一起授权使用。系统已经预装在电脑上,同时与电脑主板锁定。通常附带提供COA和用来重装的系统恢复光盘。由OEM厂商提供支持,OEM授权不能用来升级。通常这是最便宜的授权方式。
3批量方式。给政府、企业、教育机构等客户进行批量授权。该授权通过相关机构获得和管理,主要适用于Windows的较高级版本(一般不包括家庭版)。这种授权方式包括很多种,比如Open Valuewindows 7 产品密钥Open License Select Plus Select License Enterprise Agreement Enterprise Subscription Agreement等。需要说明的是,批量授权只能用于Windows升级授权不包括完整授权,也就是说电脑已经拥有通过OEM或者零售获得的低版本的Windows授权才能使用批量授权。
二、OEM授权的三大级别
由于目前品牌电脑已走入千家万户,因此本文重点讲讲OEM版的激活原理,让广大朋友知其然也知其所以然。大家熟知的Windows 三大系统,各自采用了不同级别的激活机制:
1Windows XP 采用的是SLP 1.0。其原理是检测BIOS中是否存在由OEM硬件厂家设置的特定字串,如果有则认为软件为OEM合法授权可以激活。
2WindowsVista 开始SLP 升级为2.0。主要是加入了利用密钥对信息进行签名的过程。因此验证过程也变得复杂了些,要环环相扣,以防验证信息被伪造。该验证过程需要在BIOSACPI中扩展出专门的SLIC表来支持。
3Windows 7 采用了最新的SLP 2.1 技术。在这个版本中微软并没有对SLP技术进行大的改动,仍然利用SLIC表,而且SLIC表的结构也没有变化,只是将Marker版本变成了2.1,当然这种会造成Marker中数字签名的改变,它对 2.0是兼容的,因此使用SLIC 2.1同样可以用于Vista激活。
三、OEM方式激活必备的三个条件
1系统硬件条件。所谓的系统硬件条件,是指BIOS中包含验证所需信息,这是OEM厂商在出厂时提供的。主要是SLIC表,以及RSDTXSDT中的OEMIDOEM Table ID信息。SLIC表包含OEMIDOEM Table IDWindows Marker版本、Windows旗标等信息,以及用来对这些信息进行验证保护的OEM厂商公钥和Marker的数字签名。这里的验证要求:SLIC表校验正确、数字签名正确、OEM IDOEM Table ID一致、Windows旗标正确。对于Windows 7还要求Marker的版本号(至少)为0×20001。这是整个OEM激活过程最麻烦的条件。
2微软颁发的OEM证书(扩展名为.XRM-MS)。该证书为xml格式,需要与对应品牌SLIC匹配。因为该证书中包含了OEMIDOEM公钥等信息,用来与SLIC的相应信息进行验证匹配,防止SLIC被修改。同时需要验证OEM证书本身正确性以防证书被修改,这包括利用中的验证证书内容,用作为微软公钥(与OEM公钥无关)来解密数字签名,从而验证的正确性。验证过程中还包括规范化转换(Canonicalize)和哈希运算等处理。
3微软发给OEM厂商的序列号OEM厂商的序列号有两种:SLP Key 和非SLP Key。它只与Windows的版本有关,比如用于旗舰版的Key不能用于专业版,与OEM厂商无关,即可用于任何品牌的OEM系统。
SLP Key 是微软颁发给大的OEM厂商,比如LenovoHP等使用。用来由OEM厂商进行批量预安装时使用,用户无法直接获得,它是唯一可以不必联系微软就可以进行离线激活的序列号。非SLP Key由微软发给一些小的OEM厂商,与零售版的序列号类似,需要电话激活或者在线激活。这种方式很少见,不在本文讨论的范畴。本文讨论的激活方式是采用SLP方式,因此需要SLP序列号。
四、正版验证的过程
1检查SLIC。可以使用SLIC_Dump_ToolKit 查看本机的SLIC版本及Marker是否正常、及OEMID是否一致等信息。
2检查证书。使用SLIC_Dump_ToolKit将本机SLIC保存,使用PubkeyCompare验证该SLIC与证书是否匹配。另外用SlicInfoCertInfo验证SLIC和证书是否伪造。
3检查序列号。使用Windows 7 PID Key Checker检查序列号是否为 OEM:SLP 类别。
五、OEM激活具体验证过程
满足以上条件以后,就可以进入激活过程。前面提到整个验证过程是层层嵌套环环相扣的过程,以保证以上各项信息的正确性。验证流程如下图所示,一共可分为7步:
1、激活程序启动以后,如果检测到正确的SLP Key,开始OEM激活过程,否则进行WPA方式激活(在线或者电话激活)。
2、检测OEM证书,并且利用OEM证书的数字签名,验证OEM证书的正确性,如果验证通过继续OEM激活,否则进行WPA激活。
3、将SLIC中的OEM公钥、OEMID等信息与OEM证书中的信息相比较,如果匹配正确(表明OEM公钥等信息正确)则继续进行OEM激活,否则进行WPA激活。
4、利用OEM公钥,对SLICMarker数字签名进行验证,如果 验证通过(表明MarkerMessage信息正确)则继续OEM激活,否则WPA激活。
5、验证Marker中的Windows旗标,如果旗标存在,则OEM激活过程继续,否则进行WPA激活。
6 验证Marker的版本,如果(至少)为0×20001,则OEM激活过程继续,否则OEM激活失败,进行WPA激活。
7、获取Marker中的OEM IDOEM Table ID信息,将它与所有ACPI表头中的对应信息进行比较,如果一致则OEM激活成功,如果不一致则触发WPA激活过程。