level 6
非常长,非常经典的一篇文章. 全球最大的黑客组织Defcon的发起人杰弗·莫斯的这番话耐人寻味.在美国西雅图市郊的雷德蒙,在微软宽大园区之中22号楼的一间无窗的会议室里,每天,Windows的开发人员都聚集在此解决系统的漏洞问题. “人们正在用锤子猛砸视窗Vista”. 全球最大的黑客组织Defcon的发起人杰弗·莫斯的这番话耐人寻味。在美国西雅图市郊的雷德蒙,在微软宽大园区之中22号楼的一间无窗的会议室里,每天,Windows的开发人员都聚集在此解决系统的漏洞问题。 2007年1月30日,Vista零售版正式发布。与微软以及伙伴的群情亢奋不同的是,盗版商们却早已虎视眈眈、蠢蠢欲动。就在Vista发布的一周之后,两位华人工程师Aeno与BinBin对外正式公布,他们已经通过修改主板BIOS,使得系统获得与品牌电脑OEM正版授权完全一样的免激活效果,Vista再度告破。对此微软没有发表评论。
2007年07月12日 02点07分
2
level 6
据调查后了解,目前在网上只发现ASUS的三样齐全:各版本KEY、acpislic.bin、oemcert。联想的OEM缺 acpislic.bin,除HP版KEY外无其它KEY,而其它个别品牌只有HPKEY,连oemcert都没有。与破解修改Award BIOS相比,AMI的BIOS显得更为困难一些。 ● 为何普通DIY兼容机无法成功激活OEM版Vista? 因为DIY兼容机在BIOS中缺少ACPI_SLIC表,无法满足SLP 2.0验证。一切的问题,在于BIOS。目前,最重要的过程便是在BIOS中添加SLP 2.0支持,在无BIOS源码的情况下,添加一个包含SLP证书公钥和SLP标志的ACPI_SLIC表到BIOS中。
2007年07月12日 02点07分
9
level 6
改写完BIOS后,在DOS下刷新更改后的BIOS文件。有些主板的BIOS在刷新为修改版本的BIOS后,会出现设置BIOS后无法保存的现象,可以进入利用系统下刷新BIOS程序刷新原版BIOS。通过修改BIOS后,通过替换OEM授权证书以及OEM KEY的方法激活Vista系统。 第二步:更改系统为OEM序列号和OEM证书 Windows Vista OEM版本认证机制概述:与Windows XP中只对DMI信息做认证不同的是微软在Windows Vista系统内部署了更为严密的认证机制。在启动过程中首先认证安装序列号,随后通过OEM厂商自己的证书文件对BIOS里的公钥及标识文件分别进行验证,如果验证通过版本及被识别为免激活OEM版本。
2007年07月12日 02点07分
11
level 6
这样的方法,成功破解Vista后的几率是多少呢?据一份来自国内某Vista论坛的投票统计的结果,有38%的用户已经通过该方法成功修改并激活Vista系统,有14%的用户成功修改后却无法激活,而存在着20.3%的用户因修改BIOS失败后,主板返修送回工厂。 2001年6月29日,微软第一次对Windows系统详细阐述了“激活”的概念,然而正是从那时起,破解组织们的动作变得更为疯狂。已经被破解的 Vista系统,是什么样的漏洞使得破解有机可乘,微软在此次Vista系统中,在防盗版机制上又做了哪些改进呢? ● 为防止盗版,微软针对Vista做了些什么? 在官方白皮书微软这样谈到激活程序存在的意义,“Microsoft 产品激活是一项可以检验软件产品是否得到合理许可的反盗版技术。其目的是为了减少因为不经意的拷贝而导致的盗版。激活也有助于保护硬盘,避免被复制。激活是快捷、简单而且不引人注意的,它可以保护您的隐私。”
2007年07月12日 02点07分
13
level 6
在这样的防盗版机制收效甚微的教训之后,微软在新一代软件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技术的验证具体过程如下:
2007年07月12日 02点07分
14
level 6
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版。
2007年07月12日 02点07分
15
level 6
玩家们利用分析已预装的正版Windows Vista系统提取出完整BIOS信息,分析出认证信息,从而提取了用于SLP 2.0 认证的ASUS SLIC段(SLIC段为374字节。其中表头36字节,公钥156字节,WINDOWS标识182字节,分别提取了公钥和Windows标识信息,制作出了完整的SLIC认证信息。 ● SLP 2.0技术漏洞验证 第一步:刷新BIOS
2007年07月12日 02点07分
17
level 6
在加入华硕的OEM许可证文件以及加入华硕OEM的密匙后,最后让我们激活一下系统,看能否成功激活,看看漏洞是否真的存在。 ● 激活成功!验证漏洞存在
2007年07月12日 02点07分
21