makazeu 发表于 2017-4-24 12:10

【科普】Unity引擎 & Denuvo

2017年4月23日,发售2日的《赛伯利亚之谜3》被破解,虽然破解不完美,但是游戏可运行。这次的情况和之前《昨日起源》被破解的原因一样——这两款游戏都使用了Unity引擎,而Unity引擎使用C#(.NET)作为开发语言。Denuvo主要针对的是C++游戏,需要在游戏程序编译的链接(link)阶段在符号文件中引入Denuvo。熟悉C#的人知道,C#的编译过程类似于的Java,并不是直接编译成二进制文件,而是生成MSIL中间代码,通过 .NET Framework来执行,和C++的编译过程完全不同。所以Denuvo无法直接植入Unity生成的exe文件,只能置入由C++编写的游戏外围的DLL文件。如《赛伯利亚之谜3》的破解版无法使用控制器(手柄)游玩,很有可能是因为支持控制器的代码在被Denuvo保护的DLL中,没有被破解。


作者:Makazeu
链接:https://www.zhihu.com/question/31592040/answer/81616851
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

页: [1]
查看完整版本: 【科普】Unity引擎 & Denuvo