CPU被折磨:Denuvo反篡改機制內幕曝光
Denuvo在行業內聲名日漸衰敗早已是不爭的事實,許多工作室一旦加入D加密,往往都會遭遇玩家的強烈反彈。這套反篡改方案長期被指責會嚴重破壞遊戲性能,而最新的一項分析則揭示了它究竟是如何“搞砸”一切的。

據稱,Denuvo重新編譯後的代碼充滿了各種保護性措施,目的就是讓代碼變得難以理解。這些處理會頻繁使CPU緩存失效,並撤銷遊戲原本的大部分優化。同時,額外加入的計時檢測、硬體指紋識別以及完整性校驗,也進一步加重了CPU的負擔。
所有這些技術手段帶來的代價,就是我們在搭載Denuvo的遊戲中常見的更慢加載速度、頻繁卡頓以及幀率下降。
油管頻道Nathan Baggs對Denuvo進行了分析,而程序員@valigo也在X上印證了這些發現。用通俗的話來說,Denuvo會把遊戲中的部分代碼包裹進一個自定義的虛擬機裡,原本已經編譯好的指令會被翻譯成該虛擬機所使用的指令集。
Denuvo採用的是一種基於棧的虛擬機,它作為一個軟體層,假裝自己是CPU,但會強製指令通過棧系統來執行。在這個過程中,它會應用各種保護技巧,讓代碼更難被逆向工程。
在運行時,這個虛擬機會通過JIT(即時編譯)把翻譯後的指令重新編譯成真實CPU可以執行的代碼,但同時會引入大量無意義的跳轉和混淆處理,迫使CPU的指令流水線和分支預測器承擔更大的壓力。
原本經過精心優化的循環、記憶體訪問方式和指令順序,會被Denuvo的虛擬機通過重排和封裝徹底打亂,導致優化效果喪失,並破壞CPU緩存的正常工作。
現代CPU高度依賴緩存和推測執行機制,而當代碼被Denuvo以怪異的模式不斷重建時,緩存就會頻繁失效,性能也隨之大幅下滑。

