IT之家 1 月 21 日消息,长久以来,Denuvo 防篡改技术(也称“D 加密”)在游戏行业的口碑一直不佳,许多集成了该技术的游戏工作室都遭到了玩家的强烈抵制。这款防篡改解决方案一直被诟病会严重拖累游戏性能,而一项全新的技术分析则精准揭示了其导致游戏运行不畅的内在机理。
经 Denuvo 重新编译的代码中充斥着各类防护手段,其目的是混淆代码逻辑以抵御破解。有报告指出,该技术会导致 CPU 缓存失效,并且会破坏游戏本身的大部分优化成果。额外增加的计时校验、设备指纹采集以及完整性验证等环节,会给 CPU 带来更多的性能压力。
这些技术处理环节所付出的代价,直观体现在集成了 Denuvo 的游戏中 —— 加载时间延长、画面频繁卡顿、每秒帧数(FPS)显著下降。
IT之家注意到,业内长期以来一直怀疑 Denuvo 会导致游戏性能下滑,而这项新分析深入剖析了这款数字版权管理(DRM)防护技术的内部运行机制,揭示了可能造成帧数下降和画面卡顿的核心原因。
视频博主内森・巴格斯(Nathan Baggs)对 Denuvo 展开了分析,程序员 @valigo 随后在推特上佐证了这一研究结论。用通俗易懂的话来说,Denuvo 会将游戏的部分代码封装在一个定制化的虚拟机环境中,把原本正常编译的指令转换成该虚拟机专属的指令集。
Denuvo 所采用的基于栈结构的虚拟机,本质上是一个模拟 CPU 工作的软件层,但它会强制指令通过栈系统来执行。这一过程会运用各种防护手段,增大代码被逆向工程破解的难度。
在游戏运行时,该虚拟机会通过即时编译(JIT)技术,将转换后的指令重新编译为真实 CPU 能够执行的指令形式,但在此过程中会插入大量无效跳转指令并进行代码混淆处理。这会迫使 CPU 的指令流水线和分支预测器超负荷运转,加重其工作负担。
游戏原本经过优化的循环逻辑、内存访问方式以及指令执行顺序,都会被 Denuvo 虚拟机打乱,它会对原有指令进行重新排序和封装,最终导致游戏的优化效果荡然无存,同时造成 CPU 缓存失效。
CPU 性能高度依赖缓存机制和推测执行技术,因此当 Denuvo 持续以非常规的代码结构对游戏指令进行重构时,CPU 缓存会不断失效,进而导致游戏性能急剧下滑。
这款防篡改软件已然被业内视为现代游戏体验的一大“顽疾”。不过,针对这项分析得出的结论,Denuvo 的开发方尚未给出官方解释,因此对于其相关推论和说法,还需保持审慎态度,理性看待。
热门跟贴