D加密原理解析和一点思考

前段时间在小黑和搜到了花繁紫呐呐酱的一篇关于黑神话悟空会不会使用D加密以及D加密科普的帖子,我一直也对D加密很感兴趣,虽说数字版权保护同属网安,但我本身主要是做密码学方向的,对二进制逆向之类的方向不算完全了解,但是也想从一个网安专业的方向对D加密分析一番

Denuvo全称Denuvo Anti-Tamper(反篡改),一种Windows平台上能阻止对可执行文件进行调试(Debugging)、反向工程(Reverse Engineering)和修改的技术,由索尼旗下的一家奥地利公司开发。Denuvo本身并不是加密算法,而是用来保护游戏的DRM不被绕过的工具包。

事实上,D加密并没有公开技术过程,至今除了开发者没人知道D加密的具体流程(当然部分破解者通过逆向工程,肯定掌握了它的部分技术细节),只能知道部分原理,同时D加密也在不断迭代更新以应对这种实现细节的泄露,

DRM 开发人员和逆向工程专家莫里斯・休曼(Maurice Heumann)就曾经分析过D加密的逆向,其主要工作步骤是收集用户系统的硬件和软件“特征”(比如对机器码或者用户信息生成哈希签名),从而创建一个独一无二的指纹,并生成一张“Steam 票据”。指纹和票据都会被发回 Denuvo 的服务器,而“Steam 票据”则会被转发到 Steam,以验证用户是否通过 Valve 的数字市场合法购买了游戏。在确认所有权之后,会生成一个“Denuvo Token”,它只能在创建原始指纹的电脑上运行。这个“Denuvo Token”是 DRM 技术用来解密和在用户电脑上执行游戏的数据片段。游戏在没有这个“Denuvo Token”的情况下就无法运行,Denuvo 会定期根据系统硬件验证指纹,以确保其仍然匹配(D加密将定期激活和连续认证作为一个主要手段,类似于⚪神的联网游玩)。

电子游戏破解的常见方法是通过逆向工程删除exe文件中的DRM检查,并修改电子游戏的文件,以便在破解版本中没有DRM检查,任何人都可以不花钱就可以玩游戏。D加密在当用户从数字发行平台安装游戏时,游戏文件需要使用特定的加密文件系统功能进行即时加密。一旦加密,游戏文件必须不能被访问修改,即使完全访问权限被授予,从而使破解者不可能逆向工程和删除DRM检查。所有解密操作都是在可信执行环境(TEE)上完成的,然后加载到内存中。因此,游戏文件是受保护的,这将导致修改游戏的困难,但同时,这样也会提升CPU载荷和SSD读写次数,造成性能开销,加密会有大量数据写入内存,然后进入虚拟内存交换区,导致虚拟内存数据的不断复写存读,会加重磁盘的负担,所以低内存,低速磁盘会严重影响游戏体验的,比如说卡顿,而长此以往也会降低SSD的寿命。

在论文《Video_Game_DRM_Analysis_and_Paradigm_Solution》中,作者测试了D加密对游戏性能的影响,与启用DRM的游戏相比,在没有DRM的游戏中,FPS平均增加8%,加载时间减少32%,.exe文件大小减少60%。这表明DRM技术对电子游戏的性能有着巨大的影响。这将在低PC机配置系统的情况下更加明显。

此外,我还想讨论一下除了D加密以外的另一种很恶心的DRM保护方式,即永久联网游玩,需要持续认证的游戏会在游戏中途把你踢出去,如果你的网络连接中断了,游戏断开连接需要多长时间,这取决于使用的实现方式,不同的游戏也不同。例如,《刺客信条2》会在断网5秒后停止。游戏公司经常为实施这种严厉的措施辩护,坚称他们的游戏因为其在线服务而更好,但这些借口从来都站不住脚。例如,2015年《极品飞车》的开发者坚持认为他们的游戏需要在线,因为这是一种"社交体验"。尽管如此,我们还是无法理解为什么这会阻碍离线体验,因为之前的《极品飞车》拥有强大的多人模式,却没有强加在线要求。这似乎是将这种侵入性的DRM伪装成关键游戏功能的合法要求的一个隐蔽性借口。在这种情况下,DRM本身非常成功,因为《极品飞车》尚未被破解,而且可能永远不会被破解。但是一旦公司决定拔掉他们服务器上的插头,那些购买了正版的客户就没有办法玩游戏了。

在密码学中,Kerckhoffs假设告诉我们,现代密码学中的安全性依赖于密钥的安全性,而不是保密系统的安全性,换言之,安全系统或保密系统应该就算被所有人知道系统的运作步骤,仍然是安全的。如上文所说,Denuvo这种貌似“滴水不漏”的加密模式,虽然使得传统游戏的破解方式几乎全部失效。但对破解者而言,暴力破解Denuvo加密程序的思路仍然存在,因为不同的检测点混杂在游戏启动程序的代码里虽然极难分辨,数量还特别多。但这就好比排雷一样,探测设备给力,工兵也能小心翼翼的缓慢推进。

但这就是Denuvo打的算盘,Denuvo公司也在多个场合表示过Denuvo并非完美无暇,加密程序只能尽可能的保证游戏在销售的黄金期内不被破解。

客观的讲,Denuvo的加密思路的确是有效的,在很长的一段时间里黑客们拿Denuvo束手无策。当然,倒不是说黑客一点办法都没有,真要狠下心来大不了把Denuvo嵌入的检测点一个个找出来——可这么一来就变成枯燥的体力活了。Maurice Heumann,借助 Qiling(功能强大的逆向工程框架),模拟创建了 2000 个补丁和 hooks,成功在另一台设备(笔记本电脑)上启动运行了有 D 加密的《霍格沃茨之遗》游戏,但是这确实相当消耗精力。

最后,我想说的是,一个健康的游戏市场不仅仅要有顶级的游戏,同样也要有不同品质,不同价格的“次级”游戏,而PC平台开放的特性让破解实在太过容易,使次级、再次级以及再再次级乃至各种独立游戏开发者都很难在这个市场中体面的活下来,那么就不得不选择一个不体面的D加密来折磨大家,但在这种情况下,Denuvo起到保护PC市场的作用了吗?似乎也没有。因为其相对昂贵的授权费用,使小制作的游戏用不起,而大制作的游戏,又因为太影响性能而受到广泛诟病,这些都让Denuvo现在的处境有些尴尬。

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com