
据称,Denuvo从新编译后的代码充斥了各类保护性办法,目标就是让代码变得难以懂得。这些处理会频繁使CPU缓存掉效,并撤销游戏本来的大年夜部分优化。同时,额外参加的计时检测、硬件指纹辨认以及完全性校验,也进一步加重了CPU的包袱。
所有这些技巧手段带来的价值,就是我们在搭载Denuvo的游戏中常见的更慢加载速度、频繁卡顿以及帧率降低。
油管频道Nathan Baggs对Denuvo进行了分析,而法度榜样员@valigo也在X上印证了这些发明。用通俗的话来说,Denuvo会把游戏中的部分代码包裹进一个自定义的虚拟机里,本来已经编译好的指令会被翻译成该虚拟机所应用的指令集。
在运行时,这个虚拟机会经由过程JIT(即时编译)把翻译后的指令从新编译成真实CPU可以履行的代码,但同时会引入大年夜量无意义的跳转和混淆处理,迫使CPU的指令流水线和分支猜测器承担更大年夜的压力。
Denuvo采取的是一种基于栈的虚拟机,它作为一个软件层,假装本身是CPU,但会强迫指令经由过程栈体系来履行。在这个过程中,它会应用各类保护技能,让代码更难被逆向工程。
现代CPU高度依附缓存和推想履行机制,而现代码被Denuvo以怪异的模式赓续重建时,缓存就会频繁掉效,机能也随之大年夜幅下滑。
本来经由精心优化的轮回、内存拜访方法和指令次序,会被Denuvo的虚拟机经由过程重排和封装彻底打乱,导致优化后果损掉,并破坏CPU缓存的正常工作。


发表评论 取消回复