扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:pcpop 来源:pcpop 2008年9月22日
关键字: Windows Vista 破解技术 加密解密
在本页阅读全文(共3页)
● 为防止盗版,微软针对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的漏洞在什么地方呢?这是我们下面所要讨论的。
● 如何通过欺骗SLP 2.0技术验证成功激活系统
SLP 2.0技术的验证具体过程如下:
1. 如果检测到SLP产品密钥(SLP与用的CD-KEY),SLP验证过程启动。
2. Windows确认其包含(导入)的OEM证书是微软签名的。如果检测到OEM证书,则SLP验证继续迚行。如果未检测到OEM证书,则SLP验证失败,要求迚行产品激活。
3. OEM证书将同ACPI_SLIC BIOS表中的OEM公钥做比较。如果OEM证书和BIOS中的OEM公钥匹配,则SLP验证过程继续迚行。如果OEM证书和BIOS中的OEM公钥丌匹配,则SLP验证失败,要求迚行产品激活。
4. ACPI_SLIC BIOS表中也包含SLP标志。通过OEM公钥验证SLP标志,如通过,SLP验证过程继续。否则,SLP验证失败,要求迚行产品激活。
5. SLP标志中包括OEMID字串和OEMTableID字串,与ACPI_RSDT和ACPI_XSDT的OEMID和OEMTableID比较,若其中之一不SLP标志中的字串完全相符,则SLP验证通过。否则,SLP验证失败,要求迚行产品激活。
● SLP 2.0技术的漏洞在哪里?
通过上面的认证信息,你可以了解到,目前Vista系统是依靠系统中存在的OEM证书与OEM公钥与BIOS中存在的信息进行对比。只要两者信息相同,系统便认为所使用的硬件为合法的OEM硬件,以此激活系统。那么目前兼容机内,只要伪造运行系统上与BIOS中的相互验证关系,欺骗SLP 2.0验证,盗版系统便可能被系统认为是OEM的正式版,最终达到成功激活的目的。目前,Phoenix BIOS和Phoenix-Award BIOS均已宣告正式破解。
修改原始BIOS里的ACPI表名索引,让原来没有SLIC表的BIOS变成有叫“SLIC”的这个表(所以“支持VISTA的BIOS”就不用这步,因为BIOS已经有SLIC表了)。只有表名当然不行,还要添加相应的SLIC内容,所以用CBROM分离出BIOS中的ACPI数据区,也就是 acpitbl.bin。把数据区里的RSDT表OEMID和OEMTableID字段修改成OEM厂商的SLP标志,然后在这个数据区的尾部添加OEM 厂商的SLP证书公钥,添加完后再把ACPI数据区并回到BIOS里就算是完成了。使得修改兼容机BIOS中的ACPI_RDST和ACPI_XSDT的 OEMID和OEMTableID,与SLP标志中的字串相符。
最后,我们进行了尝试性的测试,以验证SLP 2.0技术漏洞的存在。
● 漏洞验证平台
在验证漏洞是否存在,我们选用了华硕P5B Deluxe主板搭建平台,主板BIOS为1004版。
玩家们利用分析已预装的正版Windows Vista系统提取出完整BIOS信息,分析出认证信息,从而提取了用于SLP 2.0 认证的ASUS SLIC段(SLIC段为374字节。其中表头36字节,公钥156字节,WINDOWS标识182字节,分别提取了公钥和Windows标识信息,制作出了完整的SLIC认证信息。
● SLP 2.0技术漏洞验证
第一步:刷新BIOS
第二步:更改系统为OEM序列号和OEM证书
在加入华硕的OEM许可证文件以及加入华硕OEM的密匙后,最后让我们激活一下系统,看能否成功激活,看看漏洞是否真的存在。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。