Unity引擎加密方案解析

据悉,Unity引擎的全球市场占有率已经超过50%,而在全球排名前1000的手游当中,这一数据更是高达73%。不止如此,Unity在中国拥有高达350万的注册用户,《崩坏·星穹铁道》、《王者荣耀》等爆款游戏均为Unity引擎开发。

庞大的体量吸引了黑灰产,Unity开发的游戏成了遭受攻击的重灾区。++针对Unity引擎的破解、逆向工具层出不穷,如:逆向工具Il2CppDumper、dnSpy,资源解析工具AssetStudio等。++

接下来我们将通过案例演示分析这些工具的特点,并分析Unity引擎游戏该如何应对逆向及破解问题,提出有效地解决方案。

◆ Il2CppDumper

在 Unity il2cpp 模式下,会将所有的 C# 中的类名/属性名/字符串等信息记录在 global-metadata.dat 文件。il2cpp 启动时会从这个文件读取所需要的类名/属性名等信息。

正是这一机制为外挂制作/游戏破解带来了便利,使用 IL2cppDumper 可以解析 global-metadata.dat 文件,并将文件里的类名等字符串信息对应到 Native 代码中去,极大地方便了逆向分析。

在未加密情况下IL2cppDumper可以解析出 .cs / .json 等文件

将解析后的 .cs 文件拖入 Visual Studio 解析工具,可以直接分析出源码:

使用Visual Studio可以解析出.cs文件中的代码

◆ dnSpy

在Unity mono 模式下,游戏 C# 代码被编译为 IL(中间代码) 并生成 dll 文件,然后将 DLL 打进游戏包文件。但由于 IL 非常容易被 ILSpy / dnSpy 等专业反编译软件分析逆向,所以在无保护情况下,游戏的安全性极差。

dnSpy 是一个开源、跨平台的 .NET 调试器和反编译器,可以在无源码的情况下,进行代码调试和修改。利用 IL 和 C# 等多种语言的支持,dnSpy 能够将 .NET程序 的二进制文件反编译成源代码。

未加密经dnspy函数解析出源码

◆ AssetStudio

AssetStudio是一款开源的 Unity 资源解析工具,能够识别 Unity 的二进制资源文件格式,并将其解码为可读的数据结构。仅需将资源文件导入,将可以轻松查看并导出3D模型、纹理、音频以及其他Unity支持的各种资源类型。

AssetStudio可以解析出大量游戏资源

FairGuard基于十余年游戏安全对抗经验,针对Unity引擎研发了一套成熟完善的解决方案。以多项独家技术为基石,构建了全方位的Unity游戏防护矩阵,并提供定制化解决方案,包含如下功能:

文件/代码防篡改功能

针对Unity引擎中的 mono DLL / global-metadata.dat / libil2cpp.so 等文件进行高强度加密。

■ mono DLL加密

FairGuard深入游戏引擎底层,构建了第三代加密方式------DLL结构虚拟化。对DLL的文件结构进行自定义重构,并对文件结构数据进行高强度加密。

加密处理后,所有的工具都无法解析出任何数据,加密方案可以有效提高破解门槛,避免游戏被逆向分析破解。

加密后dnspy函数解析报错

■ global-metadata.dat 文件加密

加密 global-metadata.dat 文件,同时做到对开发者透明。开发者只需使用加固工具运行一条命令行,即可实现加密,不需要上传额外文件。

libil2cpp.so 文件加密

加密 libil2cpp.so 文件,由于 IL2cppDumper 需要依赖 libil2cpp.so 对应 global-metadata.dat 文件中的字符串地址,所以对 libil2cpp.so 做深度加密非常有必要。

使用加密方案后,即使从内存中 dump 出来 libil2cpp.so , 依然不会被 IL2cppDumper 正常识别,效果如下图:

加密后IL2cppDumper无法解析

Unity AB资源加密方案

++FairGuard独家资源加密方案,支持Android、iOS、PC、H5、鸿蒙多端。++加密方案深入游戏引擎底层,结合游戏资源文件结构及加载机理精心构造。

可为游戏资源提供高强度加密保护,同时具备高兼容性、运行消耗小、性能无影响的特点,并且支持资源在线更新。

此外,方案对接入流程进行优化,实现了无需开发对接与接入、加解密对开发透明等特色功能。

FairGuard算法流程图

除了上述的引擎内文件/代码/资源加密,FairGuard还提供反外挂、防破解功能,与引擎加固功能紧密耦合,游戏保护效果更上一层楼。

反外挂功能

针对游戏将面临一系列外挂修改风险,FairGuard研发了行为检测方案,搭配300+维度的智能感知系统,可通杀各类外挂及其变种,做到有效防护。

防破解功能

采用FairGuard业界独家技术「无API签名校验技术」,从底层出发,对游戏的引擎与代码进行加密处理,可以针对游戏包签名和文件完整性进行多重校验,防止游戏被植入恶意模块、剔除广告等。

变速闪退功能

采用更加底层的检测手段,经大量实机测试,可无视任何变速器及其变种,一旦检测到变速情况,将立即闪退游戏。

反调试功能

防止外挂作者对游戏进行调试,阻止对游戏的静态或动态分析,一旦检测到IDA/frida等调试分析工具,立即闪退。

相关推荐
CandyU21 小时前
Cursor AI Unity
unity
LF男男2 小时前
Bullect.cs(bullet)——子弹基类
unity
mxwin18 小时前
unity shader中 ddx ddy是什么
unity·游戏引擎·shader
郝学胜-神的一滴21 小时前
[简化版 GAMES 101] 计算机图形学 08:三角形光栅化上
c++·unity·游戏引擎·godot·图形渲染·opengl·unreal
nnsix21 小时前
Unity ILRuntime 笔记
unity·游戏引擎
nnsix1 天前
Unity API 兼容的 .NET Standard 2.1 和 .NET Framework 区别
unity·游戏引擎·.net
mxwin1 天前
Unity Shader 制作半透明物体 使用多Pass提前写入深度的方式 避免穿模
unity·游戏引擎
nnsix1 天前
Unity HybridCLR 笔记
笔记·unity·游戏引擎
nnsix1 天前
Unity Addressables 笔记
unity·游戏引擎
RReality1 天前
【Unity Shader URP】视差贴图 实战教程
ui·平面·unity·游戏引擎·图形渲染·贴图