Unity Mono DLL的破解及保护

Unity Mono DLL的破解及保护

来源:FairGuard 发布时间:2020-05-26 10:09:11 点击数:

Mono dll脚本是Unity前期包含现在还有很多游戏在使用的脚本方式,这种脚本可以使用工具(如dnspy)完全逆向。破解者改包和竞品分析的难度非常低。

很多有安全意识的游戏都会自己修改mono源码的mono_image_open_from_data_with_name函数,对DLL脚本进行加密。

不过这种的加密方式缺点比较明显。会在加载前进行一次性解密,游戏运行过程中,内存中存在解密后完整的DLL。

只要使用现成的工具就可以把DLL从内存里面扣出来。

GG修改器搜索数值脚本

如上图,使用GG修改器,使用9460301数值即可把所有的DLL脚本内存基础搜索出来。

目前很多手游加固厂商都还是使用这种加固方式。

第二代DLL加固,对DLL里面的函数进行加密,这种加密方式的优点是,使用的方法才会进行解密,不像整体加密那样,会一下子把完整的DLL解密到内存中。

一般游戏运行过程中不会用到所有方法,这样内存中就不会存在一个完整的DLL,方法解密的效果如下图所示:

原始未加密dnspy函数解析结果

原始未加密dnspy函数解析结果

函数加密后dnspy函数解析报错

函数加密后dnspy函数解析报错

第二代DLL加固存在的缺点是解析工具还是可以看到函数名及部分函数。于是出现了第三代DLL加固。

第三代加固我们称为DLL结构虚拟化。对DLL的文件结构进行自定义重构,并对文件结构数据进行高强度加密。处理完后,所有的工具都无法再解析出任何数据,对于专业的破解分析人员,要解密出里面的结构数据难度也是非常大。

标题虚拟化后dnspy无法识别DLL

标题虚拟化后dnspy无法识别DLL

DLL脚本使用的数据结构跟windows下面的可执行文件一样,都是PE结构,未DLL结构虚拟化时,使用010Editor可以解析出正常的PE结构。

虚拟化后的DLL结构010 Editor无法正常解析

虚拟化后的DLL结构010 Editor无法正常解析

第三代DLL加密为FairGuard独家首创,为手机游戏安全防护提供业界顶类加密方案。


丨结语

FairGuard 专注于游戏加固与反外挂,为 Unity / Cocos / UE 等引擎的游戏提供深度一体化加密保护方案。

目前产品已经被FunPlus、Garena、三七互娱、游族等多家头部公司采用。TapTap排行榜以及买量排行榜上亦有多个游戏使用。

产品咨询联系方式:

QQ:2079128588

微信:fairguard01

技术交流QQ群:1105310296


即刻体验FairGuard

即刻体验FairGuard

免费试用游戏游戏安全保护, 对接专业技术服务!

免费体验
首 页
产 品
方 案
客 服
帮助