学习版游戏从何而来?破解攻防技术解读
- 来源:电脑报 smarty:if $article.tag?>
- 关键字:学习版,游戏,解读 smarty:/if?>
- 发布时间:2024-09-25 14:32
■ Jeff
逆向工程后的代码篡改是破解的关键
大多数破解游戏,在下载完成后都有一个单独的破解文件压缩包,这个压缩包的名称可能玩过学习版游戏的都耳熟能详,比如EMPRESS、CPY、CODE 以及曾经国内的3DM 等等,其实这都是破解组的名字。我们只需要将这个文件解压,然后把文件夹内的文件全部复制到游戏文件夹覆盖原文件后,就能正常进入游戏了。
破解的过程其实从逻辑上来看也比较简单粗暴:破解人员通过分析游戏程序的执行流程,了解其内部逻辑和运作机制,接着通过逆向工程找到关键的代码段,进行修改以绕过正常的注册和验证流程,最后创建特定的补丁文件用于修改游戏的原执行文件,目的就是让注册表系统失效,绕过验证过程,直接运行游戏文件。
再往前的游戏其实更简单,那时候因为没有联网认证机制,软件设计也没有这么复杂,游戏在启动前需要输入正确的序列号方能进入,当然现在也有不少的软件依旧采用了这个方法,比如大家经常见到的考机软件AIDA64 等等。而这种加密方式的破解是比较简单的,可以通过监视游戏在不同输入下的响应,猜测可能的序列号结构,也可以修改游戏保存的特定文件,如链接游戏的.dll 和.so 文件,来绕过注册验证,或者分析并复制游戏内置的注册码生成算法,自制对应的注册机来生成注册码。
D加密,正版玩家也成“受害者”
所谓“道高一尺魔高一丈”,游戏加密方式也是在不断进步的,现代游戏最著名的加密方式就是让广大玩家又爱又恨的“D 加密”,在Steam 游戏商店看到有“第三方DRM:Denuvo”标签的游戏,就是有D 加密的游戏,这是一项由奥地利Denuvo 公司推出的防篡改技术,它的运行方式比较聪明:先将游戏程序分成多个小块,并使用不同的加密方法加密每个小块,同时这些小块之间的关系也被加密了,而且为了防破解,它会在游戏运行时动态地改变代码结构,使破解者更难找到关键的代码片段进行破解。
当正版玩家运行游戏时,D 加密的程序会解密这些小块并将它们组合在一起,从而使游戏可以正常运行。与此同时,D 加密还会在游戏程序中添加一些检测代码用来检测游戏是否被破解,如果检测到游戏被修改或破解就会立即停止游戏运行,而且一些使用Denuvo的游戏需要联网验证后才能获得运行授权,相当于又上了一道“联网认证”的锁,但同时又比那些需要全程联网的单机游戏更亲民。
不过,正因为D 加密会对游戏的可执行文件进行不断的加密解密操作的缘故, 增加了CPU 的工作量, 对于采用老旧或低配处理器的玩家来说,可能会因为占用过多资源导致游戏性能下降,有不少测试表明在游戏官方移除D 加密后,一些游戏的帧速会有所提升,比如《生化危机8:村庄》在使用武器时,游戏帧率会出现剧烈波动,但当D 加密被移除后这个问题得到了明显的改善,所以才有不少玩家认为自己玩个正版,反倒成了性能“受害者”。
而且从现实角度来说,D 加密也并不是十全十美的,从破解组的角度来看只是难度相对较高而已,大多数D 加密游戏只要破解组技术力过硬都能完成破解,比如《生化危机8:村庄》在发售后不到2 个月就被破解,《死亡搁浅》在发售后3 个月也被破解,类似的例子还有《霍格沃兹之遗》《杀手3》《古墓丽影:崛起》《正当防卫3》等等。
而且D 加密对于游戏厂商来说是订阅制的,要么按销量抽成,要么按时长付费,因此大多数采用D 加密的游戏在度过黄金销售时段后就会移除D 加密,既保证了游戏最初期的销量,同时又能降低后续维护成本,一举两得。