Cocos资源加密方案解析

据数据显示,Cocos引擎全球游戏市场的占有率约为20%,在国内手游占有率约为40%,而在小游戏赛道,这一数据则高达64%。因其内置的H5引擎、免费开源、轻量化等优势,得到众多小游戏开发者青睐。

Cocos引擎的优势在2D画面渲染方面表现突出,更契合中小型游戏的需求。但Cocos引擎同样绕不开安全问题,由于其开源的特性,针对Cocos引擎的破解更为猖獗。

Cocos引擎的主要资源、代码文件位于包体中 assets/ 目录下。我们以 JavaScript 脚本为例,资源储存在 .JSC 文件中。由于文件无法直接打开进行编译,破解者会在引擎启动工程中找到 libcocos2djs.so 文件,这里储存着秘钥。

libcocos2djs.so文件储存着Cocos秘钥

破解者会尝试将 .SO 文件放入 IDA 等工具中进行反汇编,通过搜索 applicationDidFinishLaunching (入口函数)找到秘钥,再将秘钥进行编译即可得到资源、代码文件。

使用IDA工具查找Cocos引擎秘钥

此外,Cocos引擎中还有另一种脚本语言 Lua 。由于 Lua 虚拟机可以直接解释执行 Lua 源代码,会导致许多游戏开发者直接将 Lua 源代码打进 apk / ipa 中。

这种操作相当于直接泄漏了游戏源代码,极有可能被拿去做换皮二次开发,据Cocos官方统计,未加密的游戏资源在发布后30天内被盗用率高达68% 。

据观察,部分厂商会采用LuaJIT、自定义Lua等手段做加密,但这些操作在面对专业的反编译器及破解者的攻势下,还是难逃被破解的命运。

反编译器luadec

资源文件作为游戏的重要资产,储存着美术资源、代码、音视频等重要内容,一旦泄露会造成竞品抄袭、知识产权受损、游戏内容剧透、篡改游戏资源制售外挂等一系列严重问题。

如何有效对Cocos引擎做资源加密,提高破解门槛,成了游戏厂商的必修课。针对上述问题,FairGuard制定了一套针对Cocos引擎的加密保护方案:

◆ 资源加密

FairGuard加密方案进行了特殊构造,只对核心关键位置做加密处理,对游戏加载速度、运行流程程度的几乎没有影响,实现了无感知。

◆ 引擎模块加固

使用业界独创的无导入函数SO加壳对游戏引擎模块进行加固,保护游戏代码不被分析,防止破解者的进一步操作。

FairGuard加固后IDA导出表中无SO函数

◆ JS脚本加密

使用高强度算法对JS脚本进行加密,并防止通过HOOK破解脚本。

◆ C++代码加密

对C编译后的动态库进行加固,防止被反编译。

◆ lua脚本加密

采用深度加密的方式,确保 Lua 脚本无法被直接解密,支持ulua/tolua/slua/xlua等不同 Lua 的脚本加密,同时对 Lua 解析模块进行加固。

除了各类加密保护,FairGuard加固方案还提供行为检测手段及反修改器、反调试、反注入、反变速等功能,可与引擎加固联动,真正做到有效保护游戏安全。

相关推荐
冬奇Lab10 小时前
Skill 系列(02):Skill 安全风险——三类攻击面的实战测试
人工智能·安全·开源
jump_jump20 小时前
为了重玩金庸群侠传,我研究了一下 Ruffle 怎么复活 Flash
游戏·rust·github
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
Aloys_Code3 天前
逆向一个被遗忘的DVD游戏格式:从DES加密到Rust模拟器
游戏·模拟器·retroarch·复古游戏·native32·sunplus·赤刃·钢铁风暴
金銀銅鐵3 天前
用 Python 实现 Take-Away 游戏
python·游戏
金銀銅鐵4 天前
用 Pygame 实现 15 puzzle
python·数学·游戏
Aphasia3114 天前
VPN 与内网穿透
安全
Mr_愚人派5 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
DaLi Yao6 天前
【无标题】
人工智能·安全
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker