BIOS引发的血案 10分钟完美破解Vista
“人们正在用锤子猛砸视窗Vista”。
全球最大的黑客组织Defcon的发起人杰弗·莫斯的这番话耐人寻味。在美国西雅图市郊的雷德蒙,在微软宽大园区之中22号楼的一间无窗的会议室里,每天,Windows的开发人员都聚集在此解决系统的漏洞问题。
2007年1月30日,Vista零售版正式发布。与微软以及伙伴的群情亢奋不同的是,盗版商们却早已虎视眈眈、蠢蠢欲动。就在Vista发布的一周之后,两位华人工程师Aeno与BinBin对外正式公布,他们已经通过修改主板BIOS,使得系统获得与品牌电脑OEM正版授权完全一样的免激活效果,Vista再度告破。对此微软没有发表评论。
就在破解消息从论坛中散播出之后,在短短的一个月之内,网络上关于利用修改BIOS而破解Vista系统的资料早已铺天盖地,当然也有很多网友在论坛上发帖炫耀着他们所谓的战绩。微软产品激活部门负责人Allen Nieman坦诚,“任何产品保护技术都会最终被破,这只是时间问题”。是谁胆敢在微软视窗下破“窗”而入?满身“防盗网”的Vista为何再遭破解?为了让破解真相尽快浮出水面,以及证实所存在漏洞的消息的真实性,我们展开了为期半个月的调查与深入思考。
● 一个微软所“承认”的盗版Vista诞生
自从微软在Windows XP中开始引入产品激活保护之后,各国技术人员便开始以攻克微软的激活保护为荣。微软新一代的桌面操作系统Windows Vista面世之后,各种破解激活保护的方法更是层出不穷。先是用于批量激活的非法KMS 服务器遍布网络,然后是俄罗斯方式的时间停止法等等。
利用修改BIOS的方法激活后的盗版,之所以说这是微软所承认的盗版Vista,原因在于成功激活后的盗版的系统也一样可以在微软的官方网站上通过正版认证。这是微软官方网站上所承认的“正版”。
利用BIOS破解操作系统已经不是第一次。早在2005年的WindowsXP时代,网络上便一再流传通过Aawrd DMI Configuration Utility工具,在BIOS中加入OEM厂商信息,可免费激活OEM版本的Windows XP系统。转入2007年,修改BIOS的方法,OEM版本VISTA认证信息被成功伪造在非原生支持SLIC段的BIOS里,再次使得大打安全牌的Vista系统陷入尴尬的境况。一位已经修改成功的网友向泡泡网透露:“前提是要改好BIOS。有MSDN版本Vista,使用ASUS CD KEY安装后导入证书就能免激活,而且还可以得到微软的认证。”
● 破解Vista激活机制三大方法
全世界的黑客们,都希望找到这个被开发者称为“史上最安全”的操作系统软件的“命门”,为此大家前仆后继。目前,网络上已经透露出三种破解Vista激活机制的方法:
1、时间停止法
原理:TimeStop(时间停止)法,首先更改系统时间为2099年12月31日(vista支持的最后时间),破解完后更改为当前时间,通过停止Vista中的计数器以达到强行冻结Vista验证时间的目的,最终系统激活时间定格在30天。黑客组织已经在网络上提供傻瓜激活程序下载,最新的2.0版可以激活64位操作系统。
缺陷:不享有自动更新以及微软其它服务,一旦把机器设置为自动更新,TimeStop失效,甚至可能导致系统瘫痪。
2、KMS激活法
原理:此方法主要针对激活Windows Vista Enterprise(企业版)。为了防止在XP时代的免激活企业版的散播,Vista要求集体用户必须激活每一个副本的操作系统。通过与KMS(Key Management Service,密钥管理服务)服务器连接,用户可在电脑上激活Vista系统,而破解者们,正是利用VMware Workstation 5.5.3这样一个虚拟机软件,使用VMware镜像和VBS脚本复制一个本地KMS,使得可以绕过微软企业版Vista系统的反盗版机制成功激活Vista系统。
缺陷:Home和Ultimate版不能接受KMS密钥,仅能在 Business(商业版)或Enterprise(企业版)下使用;必须每6个月重新启动KMS服务器激活一次。
3、OEM激活法
原理:利用的是微软OEM中用于辅助激活的SLP(System-Locked Preinstallation)技术的漏洞(不感兴趣的可以无视),通过修改BIOS中的信息再配合导入的正版OEM证书文件来获得永久性的激活以及正版认证。危险系数最高,但破解后能得到与Vista正版相同的升级服务。
缺陷:可能导致主板损坏或者功能缺失的危险。
针对第一、第二种方法,微软早在去年12月便发布了名为Windows Vista Validation Update KB929391的升级补丁,然而就在补丁发布后的3小时内,该方法再次告破!目前,OEM激活法可谓最为火热,因为成功率最高以及破解成功后可以真正实现原版功能。对于现在各大论坛中讨论得最为火热的OEM激活法,网络上的提供的“招数”以及“服务”更是空前。
<● 再遭黑客戏弄 网上爽爆“一站式”服务
与微软在各大电脑卖场中热闹非凡的Vista活动相同,在各大论坛中关于利用BIOS破解激活Vista信息的讨论也早已是热火朝天。从教程到已经修改好的BIOS下载,从视频解说甚至到“一站式”免费带改服务,对于破解Vista系统甚至已经到了空前的地步。
◎ 奇事一:别人改好,你下载就成
◎ 奇事二:网络惊现免费修改教程
◎ 奇事三:你不会改,网友竟免费服务
据调查后了解,目前在网上只发现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中。目前,仅能通过替换现有的、功能较小的ACPI表来实现与OEM版本BIOS的吻合,而要实现动态修改添加尚存在一定的难度。使用静态替换法,可能导致的问题便是在更新完BIOS后,无法再更改内容的容量。
国内某私人FTP上提供的破解资源下载,甚至超过了破解XP的势头
普通版本的BIOS和OEM版本的BIOS有何区别呢?
经过研究发现,OEM版本中的BIOS多出SLP证书公钥和SLP标志,它们均存储在OEM硬件内,写入在BIOS的ACPI_SLIC表中,而这些是非OEM版本BIOS所不具备的。
在玩家对Vista存在的漏洞验证过程中,通过使用MMTOOL分离BIOS文件,发现OEM版BIOS中包含534c4943 (十六进制)字段,这些正是SLIC表格标记。它们一般都可以加入slp20pubkey和slp20marker两个模块338字节地址空间。如果满足大于338字节空余空间及SLIC表格标记,便是OEM版本的BIOS。SLIC(System Liscensed Internal Code)翻译成中文就是预安装系统许可内部固有代码。
看完一大堆的图片资料以及网友破解成功后的截图,那么Vista是如何被成功破解且被成功激活的呢?下面我们用简单的几个步骤来演示第三方技术人员破解的整个过程。
第一步:改写BIOS,符合OEM信息需求
Vista会根据BIOS中是否包含OEMID字串和OEMTableID字串,以此确定是否通过SLP验证,SLP验证失败,则要求进行产品激活。ACPI SLIC表信息为374字节,前36字节为表头,后338字节为OEM版本需要认证的信息。只要满足BIOS中有SLIC表、RSDT表这两项且修改正确,那么此时的BIOS一般就可以认为是修改成功的。
·更改主BIOS模块
·更改ACPI表
改写完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版本。
一位成功修改后的网友,这样说到“接下来的安装过程就和普通的Vista安装完全一样了。在输入序列号的时候不要输入,然后选择HOME PREMIUM版本,安装就是免激活的。”
第三步:重启计算机,成功激活Vista!
重启机器进入vista,鼠标右键点桌面上的 计算机-属性,会出现windows已激活字样,说明修改成功。同时,可以通过运行slmgr.vbs -dlv和slmgr.vbs -xpr命令查看Vista状态。
这样的方法,成功破解Vista后的几率是多少呢?据一份来自国内某Vista论坛的投票统计的结果,有38%的用户已经通过该方法成功修改并激活Vista系统,有14%的用户成功修改后却无法激活,而存在着20.3%的用户因修改BIOS失败后,主板返修送回工厂。
2001年6月29日,微软第一次对Windows系统详细阐述了“激活”的概念,然而正是从那时起,破解组织们的动作变得更为疯狂。已经被破解的Vista系统,是什么样的漏洞使得破解有机可乘,微软在此次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的漏洞在什么地方呢?这是我们下面所要讨论的。
● 如何通过欺骗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版。
● SLP 2.0技术漏洞验证
第一步:刷新BIOS
第二步:更改系统为OEM序列号和OEM证书
● 通过微软官方验证,无限升级
早前据微软公司正版软件验证技术部门工程师Anderson透露,OEM 破解方式将在今年下半年发布的Windows Vista SP1 时得到阻止。届时Windows Vista SP1将会集成对Windows Vista产品密匙的验证程序。所有厂商的Windows Vista OEM 版本通用安装的Key将会失效,Windows Vista 随机版用户都必须用唯一能验证正版身份的COA密匙通过验证才能升级到Windows Vista SP1。而通过破解方式的盗版用户将会因为没有合法的安装密匙而会被阻止升级到Windows Vista SP1。
●“出来混,总是要还的”,亲历盗版后的危机
“出来混,总是要还的”,电影《无间道》的这句台词颇有一点江湖的味道。在破解软件大行其道的今天,在美丽的“成功激活”的掩护下,在破解后的系统中也出现了种种问题。
在修改方案公布后,我们也收到了网友众多的回馈信息,其中不乏抱怨之词,例如超线程CPU与多核CPU无法正常工作,许多声卡、网卡不能正常工作,无法超频,退出游戏后造成蓝屏等等,更为严重的是,刷新修改失败的BIOS后返厂维修。“这么多人送修,看来自己还算幸运的。很多人刷挂了,要等年后才能送修”一位网友这样谈到修改后的惊现经历。
作为首位成功进行突破验证的工程师以及SLP2.0技术弱点的发现者,Binbin这样说到:“技术是没有正邪之分的,关键看使用的人出于什么目的使用该技术。我们分析SLP 2.0技术的弱点及公开突破验证演示,完全处于技术研讨的目的。我们认为突破试验验证的演示仅使用于实验室环境。我本人和合作人aeno都在使用预装Windows Vista的品牌机,从而有机会研究这项技术。Windows Vista是一个优秀的操作系统,我也是热爱微软产品的技术人员。”
● 打击还是引导?微软帝国遭遇的噩梦
微软反盗版行动的关键一步不在于打击盗版,问题的症结显然是如何引导用户远离盗版软件是当务之急。多年来,微软因为“垄断高价”问题,在包括中国在内的全球市场广受诟病,微软显然生怕被这个“骂名”继续尾随下去。我们从微软中国公司的主要零售渠道连邦软件营业店咨询后得到的信息,目前已经到货的Vista包括家庭普通版和中文旗舰版,售价分别为每套1530元和2760元。
“看看中国的手机销量与普及率都已经很高,三四千元的手机连上学的学生有些都买得起,这依然是消费观念问题。如果真心想买,中国人可以说一半都会买得起,但是必竟盗版的情况大量存在,现在说系统再去花钱买,大家都不太适应。”一位民间破解组织成员这样向我们说到,“我想还是更加应该支持正版,我个人认为,Vista这次的售价应该还是合情合理的,看看中国的软件:用友软件。一套网络网带几个客户端就得十几万,相比之下,Vista的价格就很低很低。如果舰舰版能降到2300左右,高级家庭版降到1500元左右,我想可能会有更多人选择正版。”
反垄断、盗版、安全、兼容性、价格等问题已成为微软挥之不去的梦魇。
【请拨打微软举报热线】
盗版现象不仅侵犯软件权利人的知识产权、遏制创新,妨碍正常的经济秩序,严重时会构成犯罪。微软已设立盗版举报热线( 限微软产品 ) ,在您发现或怀疑存在盗版现象时,无论是属于公司/代理商或零售商/ 计算机预装/ 网上盗版或侵权行为,请拨打微软举报热线( 限微软产品 ) : 8008104888。你也可以通过商业软件联盟(BSA) 在线报告盗版,或联系 BSA中国盗版举报热线:8008100036 。
您对微软Vista系统被破解问题有任何看法,可以加入作者钟杨博客中的文章,与全国网友一起进行讨论:点击进入<