当前位置:首页 > VR问答 > Denuvo加密号称无敌,为什么VR游戏还是惨遭破解?
Denuvo加密号称无敌,为什么VR游戏还是惨遭破解?

提问者:VR日报

提问

Denuvo加密号称无敌,为什么VR游戏还是惨遭破解?

回答

b1.jpg

简介

Denuvo全称Denuvo Anti-Tamper(反篡改),最早发布于2014年,为Windows平台上能阻止对可执行文件进行调试(Debugging)、反向工程(Reverse Engineering)和修改(Modifying)的技术,由奥地利公司Denuvo软件解决方案有限公司开发。Denuvo本身并不是DRM(数字版权管理系统,常见的DRM有Steam、Uplay和Origin等,可理解为正版授权验证系统),而是用来保护游戏的DRM不被绕过的。Denuvo的前身是SecuROM,那个曾经十分有效、但臭名昭著的反盗版系统。

工作原理

对于其他的加密系统,破解者只需要修改游戏的exe或dll文件绕过游戏对DRM的验证,然后模拟正版环境(如特制的steam_api.dll)即可实现破解。而Denuvo就是用来保护游戏的二进制文件(中和DRM相关的模块)不被调试和修改的,这样破解者就没有办法绕过DRM验证从而实现防止破解。

目前关于Denuvo的详细工作原理,目前除了开发者和顶尖黑客以外基本上无人知晓其完整的工作方式,我们只能通过破解者的讨论中窥探出一些端倪:Denuvo反篡改系统主要由两部分组成,游戏启动时的授权认证模块和游戏运行中的篡改检测模块,他们都是基于64位虚拟机VMProtect(这个“虚拟机”不是我们常说的那种可以运行操作系统的虚拟机,而是一种指令集翻译机,类似于加壳一类的技术)。Denuvo会在玩家第一次启动游戏时把PC的硬件和操作系统信息发送至Denuvo的服务器以取得独一无二的认证密钥(License)存储在本地,每次游戏启动时都会检查该授权密钥是否和当前运行环境匹配;游戏中内置的多处触发器还会在游戏运行中进行篡改检测,一旦授权校验失败或检测到了游戏被篡改,游戏就会终止运行或游戏玩法发生改变。

也正是由于使用Denuvo的游戏内埋藏的数量众多的基于VMProtect虚拟机的触发器,所以使用Denuvo的游戏的可执行文件(exe)通常很大,接近100MB。与SecuRom相比,Denuvo只是把篡改检测模块(触发器)放入了VM,而游戏内容并不在VM中,使得反盗版技术对游戏性能的影响大幅降低。

b2.png

(图片:当游戏启动时,如果Denuvo的认证授权模块无法从服务器取得正版授权时,便会弹出此窗口阻止游戏进一步运行。此外,Denuvo还支持离线激活游戏,图中蓝色的链接是Denuvo的官方服务器,访问它便可在其指引下获取密钥,完成离线激活)

早前,有报道指出,Denuvo程序对其自身持续不断地进行加密并解密来防止被破解,从而会损伤SSD。后来Denuvo的开发公司出来澄清道“我们的反篡改技术没有对存储介质上的数据进行加密或者解密,这样不但不会提高安全性,反而还会拖累性能;不影响游戏性能是客户(指游戏开发商)提出的重要条件之一。‘Denuvo会损伤SSD’完全是论坛上某些人脑补出来的”。

Denuvo的雇员称其保护技术包括反篡改(Anti-Tamper)、反调试(Anti-Debugging)、反载入(Anti-Loader)和篡改检测技术(游戏内的篡改检测触发器使得破解版游戏的玩法发生改变),这些保护技术可通过加密引擎自动部署。Denuvo反篡改技术的保护对象主要是Windows平台下由C++编写的游戏,由于Denuvo需要在编译的链接(link)阶段引入,而C#的编译过程非常简单,所以Denuvo对使用C#作为编程语言的Unity引擎支持的十分不理想。开发者在购买Denuvo反篡改技术后,开发者需要把他们未上市的游戏发给Denuvo公司,Denuvo的雇员会试玩游戏,找出在游戏中部署触发器的最佳位置,随后Denuvo会向游戏开发者提供一套自动化部署的引擎,开发者即可在游戏中自行部署Denuvo反篡改技术,并且在游戏的后续补丁发布时“一键”部署Denuvo。由于每次部署时Denuvo的核心都会重新生成,所以游戏破解后的新补丁仍需要重新破解。

简短概括为什么Denuvo反篡改技术难以破解:Denuvo依赖基于代码虚拟化技术的授权验证模块和反篡改模块,这些模块遍布于游戏可执行文件的各个角落(就像蟹奴寄生在螃蟹身上一样),使得游戏可执行文件中的游戏原代码、Denuvo代码和垃圾代码混在一起,难以分离。并且每次部署Denuvo时其植入代码的模式(pattern)独一无二,因此不同游戏、甚至同一游戏的不同版本都需要重新破解。

破解历程

目前曾破解过Denuvo的破解组有:3DM、CPY,而有能力破解最新版Denuvo的小组只有CPY 。

早期(2014年~2015年初)使用Denuvo的游戏,发售数月后均被CPY破解,其中未破解时间最长《堕落之王》,在发售272天后被破解。

2015年9月初,两款大作《合金装备5:幻痛》和《疯狂麦克斯》均采用了Denuvo反篡改系统,但数天不到,国内破解组3DM便发现Denuvo系统中的漏洞,很快发布了这两款游戏的破解补丁。然而3DM的破解补丁最初只是针对游戏启动时的授权认证模块进行了绕过处理,但埋伏在游戏中的触发器并没有被全部处理,所以此时玩破解版游戏的玩家会遇到各种奇奇怪怪的问题:如《合金装备5:幻痛》的第1章和第46章会崩溃、《疯狂麦克斯》中各种不明原因的车毁人亡、瞬间爆炸、资源清零等问题据说都是Denuvo的篡改检测模块导致的。

在2015年9月的两款3A大作被破解之后,之后Denuvo修复了3DM利用的漏洞,随后发布的《星球大战:前线》和《正当防卫3》等游戏在一年内都没有被破解。Denuvo的开发者表示“虽然游戏终究会被破解,但是Denuvo反篡改技术可被认为是成功的,因为它延长了游戏发售到被破解的时间”。2016年2月初,3DM正式宣布放弃研究和破解Denuvo反篡改技术。

在2016年的前半年,Denuvo取得了巨大的成功,多款采用Denuvo反篡改系统的游戏均未被破解。在此期间,有俄罗斯黑客尝试暴力绕过Denuvo,然而游戏中有太多的篡改检测触发器需要被调试和移除,所以破解工作进展缓慢,如Mkdev花了一个月时间尝试破解DOOM,最后的结果是他仅仅破解了游戏主界面菜单,一旦进入游戏内容,游戏便会崩溃。而且,更讽刺的是,由于Denuvo的授权认证模块和PC的硬件信息绑定,所以Mkdev费尽心思破解出的“游戏主界面”只能在特定CPU(可能还需要别的特定硬件)上才能运行。

与此同时,由于Denuvo难以被破解,国内外都兴起了租游戏的趋势,即已购买正版游戏的玩家在别人电脑上登录自己的Steam账号,共享该游戏给此台电脑运行,游戏便会从Denuvo服务器上取得适用于此台电脑的正版授权,然后使用该台电脑的用户就可以在接下来的一段时间内运行该游戏,不过要求玩家在玩游戏前先断开网络,以离线模式启动Steam。一旦玩家以在线方式启动Steam或授权过期,玩家就不能再游玩。Denuvo公司为了阻止玩家滥用Steam游戏共享功能,便采取了每日激活上限的限制,同一个Steam账号每天只能在最多5台不同的电脑上激活游戏授权。不过这对于X宝奸商来说,这就足够了,以卖一次离线激活20元来算,一天就是100元,这种生意不仅使得X宝奸商最多2~3天就能收回购买游戏成本,还能几乎无成本地大赚一笔。

b3.png

(图片:“租游戏”的玩家在取得离线授权的一段时间之后,离线授权就会过期,此时运行游戏时就会弹出该窗口,游戏便不再可玩)

2016年8月6日,保加利亚人Voksi利用Steam免费试玩的漏洞(把游戏伪装成《毁灭战士试玩版(DOOM Demo)》)成功绕过了Denuvo的保护机制,并发布了多款游戏的破解补丁。采用Uplay、Origin或其它DRM的游戏没有被绕过。8月8日,Steam或Denuvo进行了服务器端的修正,封锁了此次绕过Denuvo的漏洞,至此还未破解的盗版拷贝已无法激活,已破解的盗版游戏只能在Steam离线模式游玩,一旦Steam上线便不再可玩。在此3天内,有60万份盗版游戏利用Steam漏洞在Denuvo服务器上成功激活。

就在2016年8月9日凌晨,意大利老牌破解小组CPY发布了《古墓丽影:崛起》的完美破解补丁,破解者仅用一个30KB的dll文件便成功绕过了Denuvo的授权认证模块并移除了游戏内所有的篡改检测触发器,所以使用该补丁运行破解版游戏时不需要Steam。在接下来的数个月中,CPY一发不可收拾,以不紧不慢的节奏持续发布各款Denuvo游戏的破解补丁,包括了Origin上的《镜之边缘:催化剂》和Uplay上的《孤岛惊魂:原始杀戮》,至此说明三大数字管理平台(Steam、Origin和Uplay)均已沦陷。到了2016年底,CPY发布破解的频率逐步加快,看起来CPY不仅能轻易绕过Denuvo的授权认证模块,还能一气呵成地使置于游戏中的全部触发器失效。不过,CPY的破解方法不同于Reloaded小组成功从《侠盗猎车手5(GTA V)》的游戏exe上彻底清除Arxan反篡改系统的代码模块,CPY并没有修改游戏可执行文件,而是通过加载特制的dll文件来修改内存,使可执行文件中的保护机制失效。也就是说CPY只是绕过Denuvo,没有彻底地从exe上移除Denuvo的代码模块。CPY在每次破解前都会放出一个谜语/暗号,然后于第二天在BT站发布和谜语有关的游戏的破解版镜像。总的来看CPY破解游戏的规律,该破解组更倾向于破解评价较高的游戏、规模较大的游戏公司的游戏、日本系游戏。

Denuvo公司市场销售部的负责人在接受采访时谈到,他们对Denuvo反篡改技术保护《古墓丽影:崛起》长达6个月的时间感到满意。每当有游戏被破解时,Denuvo公司的雇员就会去下载破解补丁并且去研究破解者是如何成功实现破解的,然后进行反制,“这场猫和老鼠的游戏会一直持续下去”。果然,在2016年9月发售的《PES 2017》被破解后,随后发售的多款Denuvo游戏并未被破解,我们不知道是Denuvo更新了其反篡改技术还是CPY破解组不喜欢那些新发布游戏,亦或是别的什么原因。

可是好景不长,2017年1月初,发售仅51天的《看门狗2》遭到CPY破解,而2017年1月底,《生化危机7》在发售5天后即遭CPY破解,成为最快遭破解的采用新版Denuvo加密的游戏。这说明破解组CPY对此版本的Denuvo反篡改系统的破解流程已经达到了非常熟练、甚至是自动化的地步。Denuvo公司对此的回应“我们一直都在强调,我们的技术是难以破解而非牢不可破,至少该游戏没有在发售当天被破解。我们即将推出新版的反篡改系统,一如既往地针对他们的破解方法进行安全更新。至于‘短时间内遭破解的游戏会得到我们的退款’之传言,我们公司没有这样的协议”。同为2017年1月底发售的《狂战传说(绯夜传说)》在发售21天后被CPY破解。

2017年3月3日,沉寂已久的破解小组SKIDROW突然发布《杀出重围:人类分裂》最新DLC的破解补丁,并且采用和CPY组不同的破解方法——直接修改exe使Denuvo失效,令游戏可以运行。然而后来事实证明,SKIDROW并非破解Denuvo,而是把《杀出重围:人类分裂》和《杀出重围:缺口》的exe文件拼接到了一起。《杀出重围:缺口》本是《杀出重围:人类分裂》的一个游戏模式,后来作为免费游戏发布,没有Denuvo。SKIDROW巧妙地把两个游戏的可执行文件拼接在一起,就是说把没有Denuvo的exe的头部(bootloader)嫁接到原游戏exe的身体上,使得游戏可以运行。虽然这种“破解”方法并不能复制到其他游戏身上,但是这种思路还真是巧妙啊~

2017年3月之后,Denuvo公司为其反篡改技术进行了安全更新。据俄站黑客称,Denuvo“几乎彻底”地进行了改进(revamped),包括移除旧的启动引导、用自制的虚拟机替代VMProtect以及启动游戏后会再次校验CPUID等。4月13日,CPY破解的《2Dark》使用了v4版Denuvo的32位版本。

2017年4月23日,发售2日的《赛伯利亚之谜3》被破解,虽然破解不完美,但是游戏可运行。这次的情况和之前《昨日起源》被破解的原因一样——这两款游戏都使用了Unity引擎,而Unity引擎使用C#(.NET)作为开发语言。Denuvo主要针对的是C++游戏,需要在游戏程序编译的链接(link)阶段在符号文件中引入Denuvo。熟悉C#的人知道,C#的编译过程类似于的Java,并不是直接编译成二进制文件,而是生成MSIL中间代码,通过 .NET Framework来执行,和C++的编译过程完全不同。所以Denuvo无法直接植入Unity生成的exe文件,只能置入由C++编写的游戏外围的DLL文件。如《赛伯利亚之谜3》的破解版无法使用控制器(手柄)游玩,很有可能是因为支持控制器的代码在被Denuvo保护的DLL中,没有被破解。

2017年5月4日,CPY发布《质量效应:仙女座》v1.05的破解补丁,至此Denuvo v4 x64正式宣告破解。几天后的5月8日,俄站exelab黑客Baldman成功利用Steam模拟器SSE和dump文件绕过Denuvo,破解《尼尔:机械纪元》和《狙击手:幽灵战士3》。由于破解者并未移除Denuvo的触发器而是利用漏洞绕过之,所以存在修复可能。

破解原理

前文有提到,Denuvo反篡改技术会在游戏内置许多检测游戏是否被篡改的触发器,而这些触发器是基于VMProtect虚拟机的。或许有人听说过VMProtect——很多病毒、木马程序都通过VMProtect进行加壳来逃避杀毒软件基于病毒特征码的检测。同样的原理,想要破解Denuvo游戏,就需要找出其特征码,就像杀毒软件公司分析病毒特征码那般。

目前为止仍然只有CPY破解组能攻破当前版本的Denuvo反篡改技术,原因只可能是CPY成功找到了Denuvo游戏中大量复杂的触发器的特征码。触发器是埋藏在游戏中任意地方、用于检测游戏是否被篡改的校验模块,上文中有提到,破解者曾尝试暴力找出(即边玩游戏边观察游戏中的触发器)埋藏在游戏内的触发器并一一干掉,但是无奈于这些触发器太多太复杂,手动寻找触发器不仅处理起来极其麻烦,而且还很容易有遗漏的。然而CPY却能在很短的时间内没有遗漏地找到所有触发器并用补丁使其失效,那么说明了CPY掌握到了触发器的特征码并能通过一些辅助调试软件来快速找到这些触发器。 可以想象的到,触发器的特征码一定极其复杂难以被发现,所以只有CPY破解组能成功找到。

CPY的破解文件(steamapi64.dll)只是把所有的触发器给禁用掉,我们不知道CPY是如何成功找出触发器的,所以对于Denuvo的开发人员来说,他们也不知道CPY掌握到了触发器的哪些特征码,因此CPY的破解方法难以在短时间内修复。这就好比,老师给你出了一道高数大题,然而你只写了最终计算结果,老师看不到你的计算过程、不知道你是如何得出最终答案的。在《古墓丽影:崛起》被破解后,Denuvo的开发者着手尝试修改他们自认为CPY识别出的触发器特征码,然而使用v3版本Denuvo的《看门狗2》被破解的事实证明,这种修补方法并不奏效,CPY依然能继续找出Denuvo触发器的特征码。

所以,Denuvo公司要想隐藏触发器的特征码,就必须得从底层重写触发器的构造——这就是为什么在2017年新版Denuvo中,触发器所依赖的虚拟机从VMProtect换成了全新的自制虚拟机。而使用v4版本的《质量效应:仙女座》的破解,证明自制虚拟机仍然有破绽。

Denuvo授权价格【未经证实但可信度较高】

Reddit/CrackStatus网友伪装成独立游戏开放商,向Denuvo公司询问一些信息,其中包括其反篡改技术的使用价格,得到的邮件回复中提到:

有两种付费模式:

一次性支付费用的包干模式

按游戏安装量支付相应费用

包干模式

AAA大作(安装量 大于 50万):10万欧元

AA级游戏(安装量介于10万到50万):5万欧元

独立游戏(安装量 小于10万):1万欧元

按游戏安装量付费

初始费用:2500欧元

每套拷贝:0.15欧元(安装量基于Steam等平台的月度用户数据报告)

(作者/Makazeu,知乎)

手机扫描左侧二维码

或微信搜索公众号VR一点通,每日获取精彩的VR资讯

关注VR一点通  完整你的虚拟现实梦!

分享到

合作伙伴

虚拟现实媒体|站点地图|关于我们|招聘信息|VR新闻滚动|联系我们|商务合作
Copyright © 2014-2015 VRRB.CN All Rights Reserved
VR日报 深圳大海传媒科技有限公司版权所有 冀ICP备2023013353号 网站邮箱:gexsf@hotmail.com