Damocles:BigTime 游戏分析报告
作者:Damocles
一、 概要
BigTime 于2023年10.10号上线代币后引起了GameFi的热潮,团队从9月份开始关注BigTime但是苦于没有资格一直未进行分析,在最近降低注册门槛以后,我们开始针对BigTime进行一系列的安全分析与测试,其中包括针对游戏客户端属性篡改,GameRPC恶意调用测试,代币合约审计等。通过对游戏的整体评估,我们发现该游戏的安全性较差,对于恶意玩家来看,其作弊成本低。并且游戏的分析难度低。如果项目方想持续运营游戏,提升游戏的安全性与公平性应该放在后期运营首位。
二、 游戏背景
进行评估的游戏版本:v0.28-CL#78459
游戏类型&游戏引擎:MMORPG,UE4.27
游戏玩法可能存在的问题:
1.非法移动(通过RPC进行恶意封包进行瞬移,加速等操作)
2.加速(游戏内大世界时间, UE框架下的时间函数)
3.一键连段/一键技能循环
4.NFT锻造加速
5.NFT随机数操纵
6.副本结束后的多重结算
三、 游戏安全性分析
游戏代码保护:、
分析过程:
- 由于不同的引擎有不同的分析模式,所以在获取到游戏EXE后首先需要确定游戏使用的引擎,通过对游戏基础信息识别我们可以确定该游戏是使用UE27.2进行开发。
- 将游戏导入IDA,发现游戏代码未进行加固,并且通过UE27的特征码搜索可以快速定位到GWorld变量
并且可以发现,字符串同样是没有加密。
因此在确定可以通过特征码定位到Gworld,并且游戏没有加密以后,可以通过提取NamePool特征码通过一些SDK Dump工具进行dump。
在获取到游戏SDK后可以加速分析。
分析结论:
BigTime在游戏代码保护方面得分为0,毫无保护。在传统游戏中,往往会采用定制加密,加壳等方式对源码进行保护。由于BigTime并没有健全的游戏基础代码保护,导致恶意玩家分析代码的门槛与成本都很低,如果有外挂出现,对正常玩家来说是不公平的,且有一定可能会对游戏的经济模型造成影响。
游戏基础反作弊:
分析过程:
- 在基础反作弊检测方面,我们主要从两个方面进行测试,一个是游戏是否存在反调试,另一个是游戏是否存在读写保护。
- 在游戏打开状态下使用CE进行附加,并且对通用函数进行下断点,发现游戏并没有退出,或者提示
- 通过CE对修改游戏内的Health进行修改,发现可以生效并且游戏并没有进行弹窗或者提示。(修改Health仅是为了更直观的显示,该字段一般来说都是存储在服务器,本地修改时是并没有任何效果的)
分析结论:
- BigTime在反作弊能力方面得分为0,如果存在恶意用户可以任意作弊。
- 只测试反调试和读写保护两个方面的原因是对于一块外挂来说,找数据与实现功能只需要通过调试和读写就可以实现。如果最基础的两个保护能力都缺失的话,那么一些注入、hook等检测也毫无意义。
游戏逻辑问题
分析过程:
对于基于UE开发的MMO类型的游戏来说,篡改本地数据的收益很低,原因是UE有成型的同步机制,用于各个Actor和其他属性之间的同步以及服务端校验,但是通过分析游戏源码来看,很明显BigTime并没有将属性同步机制合理运用,还是有部分数据落地,例如Comboindex功能,通过对combo Index设置写入断点,可以找到写入函数,之后便可以对combo功能进行调试。(具体操作会影响公平性,不做演示)
分析结论:
- BigTime的整体游戏逻辑安全问题并不是很突出,但是还是存在一定的安全风险,因次逻辑安全评分为4分。
- 针对某些敏感属性缺少同步机制,更多的应该放到服务端加密。
游戏RPC分析
由于RPC问题较为敏感,再缺少项目方授权下暂不展开分析。目前BigTime RPC安全防护为0,并且对于某些RPC包经测试后发现,服务器都会认可,其安全评分为0。建议项目方针对RPC整体安全进行详细审计。下图为部分RPC信息。
WEB3安全分析:
概要:
Bigtime作为一款链游,在Web3设计上可以分为两部分,分别是:基础bigtime代币部分,以及游戏内的WEB3经济系统部分。该部分设计相对其他游戏相对分离,游戏内负责产出代币与锻造NFT,同时在ETH上部署一个固定流通的代币合约。
代币合约安全:
代币基础信息如下:
BigTime代币合约采用向多签名钱包Mint代币,然后采用固定供应量的方式进行部署。因为当前代币合约功能简单,所以合约的基础安全性是足够的。通过观察Owner钱包的Tx信息,可以看到Owner钱包再获取到代币以后向几个钱包分别转帐了部分代币。
这些钱包大部分都是使用Safe的多签钱包。基于此可以发现当前与代币相关的整体安全风险主要来源于私钥泄露,以及项目方是否存在特权账户。虽然使用了多签,但是如果存在特权账户私钥泄露的话,还是会存在一定的盗币风险。
游戏内经济系统安全:
在BigTime中玩家可以进入时空守卫的空间进行锻造时间沙漏,时间沙漏充能等操作,这部分可以直接影响市场平衡的功能有部分代码是存放在本地执行的,虽然不清楚GS是如何设计的,但是这种行为属于高危行为。如下
类似这种RPC函数有很多,考虑到测试成本较高,我们暂时不做任何的安全测试,希望项目方能对这部分内容在服务器做好严格判断。
关于Damocles
Damocles labs 是成立于2023年的安全团队,专注于Web3行业的安全,业务内容包括:合约代码审计,业务代码审计,渗透测试,GameFi代码审计,GameFi漏洞挖掘,GameFi外挂分析,GameFi反作弊。
我们会在Web3安全行业持续发力,并且尽可能多的输出分析报告,提升项目方和用户对GameFi安全的感知度,以及促进行业的安全发展。