即刻体验FairGuard加固方案!
免费试用游戏游戏安全保护, 对接专业技术服务!
一、背景
Unity3D 是由 Unity Technologies 开发的一款专业游戏引擎,Unity3D 具有跨平台、高效的开发语言和工具、丰富的插件和极易上手等优势,已逐渐成为使用率最高的游戏引擎。Unity3D 程序由 C# 语言开发,采用了 .NET 框架,可以由 mono 运时行解释执行也可以直接编译本地代码il2cpp,不管何种方式,在极大提升了开发效率的同时也带来了一些安全问题。
二、Unity程序面临的风险
2.1 符号文件的提取风险
对于Backend是il2cpp类型的Unity程序,在global-metadata.dat里面会存储程序所有的类名和方法名
如果不加密直接暴露出去,攻击者通过iL2CppDumper等工具的提取后并加以利用,这会非常有效的帮助攻击者进行逆向分析。
2.2 核心代码逻辑极易被反编译或反汇编
对于Backend是Mono类型的Unity程序, 用户编写的代码最终是在核心程序集文件 Assembly-CSharp.dll ,它是标准的 .NET 文件格式,附带了方法名、类名、类型定义等丰富的元数据信息,使用 DnSpy 等工具可以轻易地将其反编译和篡改,代码逻辑、类名和方法名等和看C#源码一样方便。
对于Backend是il2cpp类型的Unity程序,用户编写的代码最终会被编译成本地代码,相对上面的Assembly-CSharp.dll 安全一点,但是对于有经验的逆向分析者来说,只要没进一步加密,通过Ghidra静态分析工具,虽然没有和阅读源码一样方便,但是对于有效的分析是绰绰有余。
2.3 游戏资源易被提取的风险
Unity3D 程序在编译打包阶段会通过 Unity 编辑器将资源加包成 Asset Bundle 文件,Asset Bundle 是一种公开的压缩类文件格式,使用 Asset Studio 等工具可以对其解析、展示和提取。
三、FairGuard应对上述风险
3.1 global-metadata.dat文件的内存动态加解密。
3.2 Mono类型的DLL程序集的整体加解密,单独函数方法的加解密
3.3 Asset Bundle 资源文件的加解密
四、加密前后的对比
4.1 AssetBundle资源保护前后对比:
在使用AssetStudioGUI工具对加密前后的资源分析:
加密前后的字节比较:
4.2 global-metadata.dat保护前后对比:
使用iL2CppDumper工具在对加密前后的dat文件进行符号提取:
加密前后的字节比较:
五、FairGuard加固方式
jar包工具跨平台操作,直接对Windows可执行文件目录一键加固。
丨结语
FairGuard 专注于游戏加固与反外挂,为 Unity / Cocos / UE 等引擎的游戏提供深度一体化加密保护方案。
目前产品已经被FunPlus、三七互娱、游族等多家头部公司采用。TapTap排行榜以及买量排行榜上亦有多个游戏使用。
产品咨询联系方式:
微信:fairguard01
也可以关注FairGuard微信公众号:
免费试用游戏游戏安全保护, 对接专业技术服务!