据统计,全球超过50%的游戏都是使用Unity创作的,作为游戏开发市场最大的游戏引擎,Unity已经全面覆盖了所有游戏平台。
全球游戏引擎市场份额。
由于规模庞大,Unity游戏成为游戏资源被破解导致的游戏黑灰行业受打击最严重的领域竞品抄袭、知识产权受损、游戏内容剧透、篡改游戏资源生产销售外挂负面案例并不少见,给游戏厂商的收入造成严重损失。
如何有效加密Unity资源,提高破解门槛,保护游戏资源,成为游戏厂商的必修课。
Halo 4 有剽窃的艺术材料(在 Halo 4 上; 在“星星”下)。
在Unity中,位于资源文件下的内容可以称为游戏的资源,如:模型、材质、纹理、音频、数据文档、场景等,Unity引擎中最常用的资源类型是资源包和资源。
对于 AssetBundle 资源,Fairguard 研发团队对 Unity 引擎进行了黑盒分析,梳理了 AssetBundle 的加载机制和文件结构。 已经开发了一组加密方案:
首先,通过分析assetbundle文件的结构,找到asset文件的核心文件块,对core文件块进行加密,然后在游戏运行时,对Unity引擎assetbundle的加载时间进行埋藏,并在埋点解密核心文件块。该方案不仅满足加密保护强度,还具有操作消耗低的特点解决了游戏资源加密的行业痛点,具有以下优势:
加密方案只对核心的关键位置进行加密,对游戏的加载速度和运行过程几乎没有影响,从而达到不易察觉的目的。
加解密算法自定义混淆,使破解者无法分析算法,算法流程图如下:
Fairguard 算法的流程图。
通过Android SO打包或iOS静态钩子导入的纯原生方案,兼容所有32位和64位指令集。
核心文件块很小,不会随整体资产文件大小而变化。 采用主流手机测试,一次解密300个资源文件,额外解密时间小于10ms。
加密算法是高度定制的混淆,混淆经过精心设计,在增加复杂性的同时兼顾效率和运行开销。
Fairguard Unity 的资源加密解决方案支持 Android、iOS、PC 和三个平台。
使用起来非常简单,只需运行一个命令行即可完成整个游戏资源的加密。
Fairguard Unity资源加密示意图。
此外,Fairguard技术团队还对Unity资源的加载原理进行了深入分析,找到了加解密的核心点,构建了资源随机加密的方案和算法。
Unity 资源资源文件打包后,它将作为名为哈希值的文件存在于 Assets bin 数据路径下,如下图所示
原始资源文件的二进制文件如下图所示,可以看到资源版本等信息
Fairguard Unity Resources资源随机加密后,没有任何信息可见,每次加密文件的内容都完全不同(如下图所示)。
此外,Fairguard针对Unity游戏面临的各种安全问题开发了成熟的解决方案,不仅对Unity资源进行加密,还使用mono dll或il2cpp对游戏内脚本进行加密。
同时,可以根据配置选项增加防破解、防修改、防变速、防调试、防虚拟机、反云手机等功能进一步加强对游戏的保护,有效解决游戏面临的各种安全问题。 目前,该解决方案已集成到多款热门游戏中,并验证了出色的防护能力。