Zygisk-IL2CppDumper对抗方案

Zygisk-IL2CppDumper对抗方案

来源:fairguard 发布时间:2023-09-27 15:48:18 点击数:

众所周知,Unity引擎中有两种脚本编译器,分别是 Mono 和 IL2CPP 。这两种脚本编译器各有优势,同时也存在一些安全性问题,本文将从游戏安全角度对其进行分析并提供对策。

Mono 是由跨平台的开源.NET 实现,它允许开发者使用 C# 等编程语言编写游戏逻辑,为游戏开发提供了简单易用的环境和高效的脚本编译速度,得到了一些中小型游戏的青睐。

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

.NET Reflector 几乎可以还原出 C# 文件

.NET Reflector 几乎可以还原出 C# 文件

相对于 Mono,IL2CPP 可以将游戏 C# 代码转换为 C++ 代码,然后编译为各平台 Native 代码。

Native 代码提高了逆向/反编译难度,可有效提高外挂开发和游戏破解的门槛。此外,IL2CPP 还具有执行效率高、内存占用小等优势,已被大多数游戏采用。

IL2CPP构建项目自动步骤图

IL2CPP构建项目自动步骤图

虽然 IL2CPP 可以在某种程度上提高游戏的安全性,但并非没有漏洞。在 IL2CPP 模式下,Unity 将 C# 代码中的类名、属性名、字符串等信息记录在 global-metadata.dat 文件,引擎依赖这些数据实现某些 C# 语言特征。

而 IL2CPP 启动时会从这个文件读取所需要的类名、属性名等信息,正是这一机制给了破解者可乘之机。

破解者可使用 IL2CPPDumper 解析 global-metadata.dat 文件,并将文件里的类名等字符串信息对应到 Native 代码中去,大幅降低了逆向分析难度。

IL2CPPDumper 接收 libil2cpp.so / global-metadata.dat文件路径

IL2CPPDumper 接收 libil2cpp.so / global-metadata.dat文件路径

面对IL2CPPDumper的逆向分析,可采用对 libil2cpp.so 文件、global-metadata.dat 文件进行加密来与之对抗,从而避免游戏代码被分析。

而 Zygisk-IL2CppDumper 、funil2cpp 等逆向工具的出现,将游戏安全对抗激烈程度抬升到了新高度。

逆向工具Zygisk-il2cppDumper界面及操作流程

逆向工具Zygisk-il2cppDumper界面及操作流程

Zygisk-IL2CppDumper是刷机工具Magisk中的一个插件,相比于IL2CPPDumper的静态分析,Zygisk-IL2CppDumper有以下几个特点

  • Zygisk-IL2CppDumper可以做到在游戏运行过程中,动态dump函数名和函数偏移,可绕过保护、加密以及混淆。

  • 启动游戏后,会在目录下自动生成dump.cs,即使游戏有检测到异常闪退,也不影响dump.cs的获取。

  • Zygisk-IL2CppDumper采用github Action,仅需fork项目,填写包名等简单步骤就可逆向分析代码,极大程度降低了外挂、破解门槛。

针对 Zygisk-IL2CppDumper 逆向分析工具对游戏造成的严重危害,FairGuard游戏加固依托十余年游戏安全对抗经验,研发了一套成熟完善的对抗方案,可有效提高分析破解门槛。目前,该方案已接入多家大厂旗下热门游戏,可行性与有效性得到了充分认证。

丨结语

FairGuard作为专注于游戏安全领域的第三方服务商,致力于帮助游戏公司解决外挂和破解问题,为游戏提供深度一体化的加密保护方案。

开发团队深耕技术,研发了无导入函数SO加壳、无API签名校验、三端通用的Unity Assetbundle资源加密方案等多项业界独家技术。

目前产品已经被FunPlus、三七互娱、游族、心动网络、恺英网络等多家头部公司采用,接入300+款热门游戏。

产品咨询联系方式:

QQ:2079128588

微信:fairguard01

技术交流QQ群:1105310296

即刻体验FairGuard

即刻体验FairGuard

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

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