在2023年这个游戏大年中,诸多热门大作涌现,作为世界级IP哈利哈利·波特的衍生游戏——《霍格沃茨之遗》毫无悬念地成为2023年游戏圈的首款爆款作品,斩获了一众玩家的青睐。
在众多光环的加持下,《霍格沃茨之遗》很快被著名游戏破解组织盯上,并扬言“会在十天内破解它并将其传播出去,每个人都能免费玩到这款游戏。”
海外破解组织扬言“十天之内破解”《霍格沃茨之遗》
随后,《霍格沃茨之遗》的破解版流出并大肆传播,对于一款刚刚发售的游戏,这样的“宣言”无疑会对游戏销量造成严重打击,游戏一旦被破解,将面临着颗粒无收的惨状。
事实上,游戏面临的破解问题,一直以来都是悬在厂商头上的“达摩克利斯之剑”。本文将以 Unity 引擎游戏为例,结合实际案例,为大家详细分析端游面临的破解问题以及解决方案。
■ 符号文件的提取风险
对于 il2cpp 类型的 Unity 程序,在 global-metadata.dat 里面会存储程序所有的类名和方法名。
如果不加密直接暴露出去,攻击者通过 iL2CppDumper 等工具的提取后并加以利用,这会非常有效的帮助攻击者进行逆向分析。
FairGuard加密前后的dat文件进行符号提取对比
■ 核心代码逻辑极易被反编译或反汇编
对于Mono类型的Unity程序, 用户编写的代码最终是在核心程序集文件 Assembly-CSharp.dll ,它是标准的 .NET 文件格式,附带了方法名、类名、类型定义等丰富的元数据信息,使用 DnSpy 等工具可以轻易地将其反编译和篡改,代码逻辑、类名和方法名等和看C#源码一样方便。
DnSpy反编译工具演示
对于il2cpp类型的Unity程序,用户编写的代码最终会被编译成本地代码,相对上面的Assembly-CSharp.dll 安全一点。但对有经验的逆向分析者来说,如果没有进一步加密,通过 Ghidra 静态分析工具就可以有效的分析。
■ 游戏资源易被提取的风险
Unity3D 程序在编译打包阶段会通过 Unity 编辑器将资源加包成 AssetBundle 文件,AssetBundle 是一种公开的压缩类文件格式,使用 AssetStudio 等工具可以对其解析、展示和提取。
FairGuard加密前后的资源文件反编译效果对比
针对端游面临的被破解、资源泄露问题,FairGuard游戏加固采用精心构造的纯native方案,构建了游戏引擎加固、防破解、反外挂、云保护、态势感知五个角度的全场景保护方案,并在此基础上新增了一系列特色功能:
● 反调试:检测游戏进程是否为被调试状态;
● 反抓帧:检测游戏进程是否被抓帧工具抓帧;
● 反注入:检测游戏是否被恶意模块注入;
● 反多开:禁止游戏多开;
● 反虚拟机:禁止游戏在虚拟机中运行;
● 反恶意工具:检测游戏运行环境是否存在恶意工具;
游戏体验流畅,性能0影响
FairGuard加密进行了特殊构造,只在资源被使用时才会解密,因此释放到缓存时还是处于加密状态。加密方案只对核心关键位置做加密处理,对游戏加载速度、运行流程程度的几乎没有影响,实现了无感知。
零接入成本,自动化配置
FairGuard针对加固流程进行优化,构造了极简加固模式,无需接入SDK,无需进行复杂的配置,仅需设置一个gamekey,运行一条命令行即可加固。
jar包工具跨平台操作,直接对Windows可执行文件目录一键加固