BIOS引发的血案 10分钟完美破解Vista
● 为防止盗版,微软针对Vista做了些什么?
在官方白皮书微软这样谈到激活程序存在的意义,“Microsoft 产品激活是一项可以检验软件产品是否得到合理许可的反盗版技术。其目的是为了减少因为不经意的拷贝而导致的盗版。激活也有助于保护硬盘,避免被复制。激活是快捷、简单而且不引人注意的,它可以保护您的隐私。”
在这样的防盗版机制收效甚微的教训之后,微软在新一代软件 Windows Vista中制定了更严格的激活条件:
1、加强了零售产品密钥的激活验证;
2、批量授权不再是完全免激活,而是授权大客户使用激活服务器,众多计算机连接到这个服务器进行激活,且定期进行重新激活。
微软在关于OEM激活许可证原理中谈到,OEM版本系统无需激活操作,OEM激活仅可用于特许OEM。对于已激活的密钥管理服务 (KMS) 客户端,其重置激活的次数没有限制。对于未激活的KMS 客户端,最多只能对激活时钟进行三次重置,与使用单一许可证的情况相同。
·在XP/2003系统,OEM采用SLP1.0的验证机制:
具体表现为:
1、OEM厂商的出厂机器BIOS里含有该品牌的字符串(STRING)
2、操作系统里含有对应该品牌的OEMBIOS.*文件
3、安装序列号为对应该品牌的OEM KEY
如果上述3个条件具备,则XP/2003系统可以免激活,否则,等同于零售版,必须在30天内激活(比如用COA的KEY激活XP/2003)
·在VISTA系统,OEM采用SLP2.0的验证机制:
具体表现为:
1、OEM厂商的出厂机器BIOS里含有该品牌的OEM授权证书的数字签名
2、OEM厂商的出厂机器BIOS里含有该品牌的OEM KEY的数字签名
3、操作系统里含有对应该品牌的OEM授权证书
4、安装序列号为对应授权证书版本的OEM KEY
如果上述4个条件具备,则VISTA OEM系统为免激活,否则,等同于零售版,必须在30天内激活(比如用COA的KEY激活VISTA)
什么是SLP?
SLP(System Lock Preinstall)的中文翻译为“预安装系统的激活保护措施”。它是微软与OEM厂商之间的一种协议,SLP是为了最大限度地保证OEM厂商的利益而又能避免盗版的泛滥。
微软从Windows XP 开始引入了SLP(System-Locked Preinstallation)技术, 用于OEM产品的辅助激活。SLP仅用于OEM产品,不会在零售版或批量授权产品中出现。Windows XP采用的是SLP 1.0版,其原理是检测BIOS中是否存在由OEM硬件厂家设置的特定SLP字串,如果有,则认为软件为OEM合法授权,成为激活状态;否则,则要求用户输入OEM硬件附带的COA号码,并通过网络或电话激活软件。由于原理简单,很快被熟悉BIOS原理及相关软件操作的人破解,随意在非OEM硬件-DIY的兼容机上实现了一样的效果。普遍流行的做法是使用DMI编辑软件,在BIOS的DMI数据区加入SLP字串,使Windows XP认为OEM授权合法,成为激活状态。
微软规定,能够成功激活的OEM版本Vista,必须经由原始设备制造商 (OEM) 通路的计算机必须在其系统BIOS内ACPI_SLIC表格中有一个有效的Windows 标记。Windows标记的出现对于计划使用Windows Vista大量授权媒体来重新映象、或透过大量授权合约提供的重新映象权限来升级OEM 的大量授权客户非常重要。
既然SLP是此次认证的关键,那么SLP的漏洞在什么地方呢?这是我们下面所要讨论的。