Damocles:Cradles 游戏分析报告
作者:Damocles
一、概要
Cradles 于 11.15 日开放下载,Damocles 团队于11.16日对该游戏进行深入的安全分析,通过分析发现该游戏有大量Debug信息未删去,从Debug日志推断该游戏开发团队为中国团队。并且在测试过程中发现,该游戏并未进行任何的安全保护,且游戏通信协议部分使用开源引擎,并且对于有些逻辑判断过于不严谨,不推荐用户去游玩体体验。
二、游戏背景
进行评估的游戏版本:20231115
游戏类型&游戏引擎:MMORPG,Unity2021.3.x
游戏玩法可能存在的问题:
非法移动(通过RPC进行恶意封包进行瞬移,加速等操作)
加速(游戏内大世界时间, UE框架下的时间函数)
自瞄/自动锁定
无敌
无限体力
挖矿加速
三、游戏安全性分析
游戏代码保护:
分析过程:
1.由于不同的引擎有不同的分析模式,所以在获取到游戏EXE后首先需要确定游戏使用的引擎,通过对游戏基础信息识别我们可以确定该游戏是使用Unity21.3.x进行开发。
2.通过浏览游戏释放的文件,可以确定游戏采用Mono机制,并不是采用iL2Cpp的模式进行开发。采用这种方式开发的游戏,整体的安全性会更差,分析更简单。
并且该游戏使用的协议框架是KBEngine。
因此可以通过Github等开源库获取到KBEngine的源码,以及一些公开的资料,之后便可以加快游戏分析的速度。
分析结论:
Cradles在游戏代码保护方面得分为0,毫无保护。在传统游戏中,往往会采用定制加密,加壳等方式对源码进行保护,并且传统游戏也很少会采用mono模式进行编译。由于Cradles并没有健全的游戏基础代码保护并且采用过时的编译技术,导致恶意玩家分析代码的门槛与成本都很低,如果有外挂出现,对正常玩家来是极度不公平,在玩家可以自由决斗的区域,作恶玩家更容易打败对手。
游戏基础反作弊:
分析过程:
1.在基础反作弊检测方面,我们主要从两个方面进行测试,一个是游戏是否存在反调试,另一个是游戏是否存在读写保护。
2.在游戏打开状态下使用CE进行附加,并且对通用函数进行下断点,发现游戏并没有退出,或者提示
3.通过CE对修改游戏内的stamina和HP进行修改,发现可以生效并且游戏并没有进行弹窗或者提示。(修改stamina是实现无线体力/蓝量,HP锁定可以在10s以内有效)
分析结论:
1.Cradles在反作弊能力方面得分为0,如果存在恶意用户可以任意作弊。
2.只测试反调试和读写保护两个方面的原因是对于一块外挂来说,找数据与实现功能只需要通过调试和读写就可以实现。如果最基础的两个保护能力都缺失的话,那么一些注入、hook等检测也毫无意义。
游戏逻辑问题
分析过程:
对于采用mono方式编译的MMORPG游戏来说,直接修改数据原则上是收益很低,但是在我们测试中发现,对于一些数据,如血量、体力等修改是可以生效的,其中血量修改后在9s内有效,超过时间则会无法攻击怪物,猜测该点在服务器有伤害时间限制。体力修改则可以长时间生效,猜测该点在服务器并未做任何判断,理由是:在本地角色体力耗尽时,可以通过暂停运动进行体力恢复操作,如果本地可以恢复,那么对于游戏来说则可以省去服务器校验的步骤。
体力更新逻辑:
血量更新逻辑:
并且在Avatar类中有很多与人物相关的属性,这部分属性中应该还存在其他可以操作的点。
分析结论:
1.Cradles的整体游戏逻辑安全问题很严重,尤其是该游戏是涉及强制PVP模式的,外挂研发门槛低,收益高,在研发出成型外挂后,完全可以实现单方面虐杀。
2.缺乏对游戏数据的感知,以及对游戏内其他易受攻击的点的检测,同时由于使用的是开源引擎,其协议属于完全开放状态,对于存在挖矿的游戏来说,这种行为的风险性极高。
游戏协议分析
Cradles采用的是KBEngine引擎作为协议基础,关于该引擎网络上有现成的资料可供参考。
参考资料:
1、KBEngine技术总览
2、KBEngine MMORPG Demo
3、KBEngine unity3d plugins
WEB3安全分析:
由于目前Cradles的代币并未上线,所以WEB3方面的分析暂缓,并且由于挖矿相关的协议完全暴露,用户挖矿数量对于游戏来说只是暂存的数字而已,所以该部分并不展开分析
关于Damocles
Damocles labs 是成立于2023年的安全团队,专注于Web3行业的安全,业务内容包括:合约代码审计,业务代码审计,渗透测试,GameFi代码审计,GameFi漏洞挖掘,GameFi外挂分析,GameFi反作弊。
我们会在Web3安全行业持续发力,并且尽可能多的输出分析报告,提升项目方和用户对GameFi安全的感知度,以及促进行业的安全发展。