Seraph(暗黑) 安全性评估分析报告

分析 2023-12-06 47

摘要:Damocles团队于1124号针对该游戏进行了安全分析与评估,但是评估结果不尽如人意。首先是项目方在代码中留存大量Log信息,并且可以从Log信息推断出项目方并非韩国团队,而是中国团队,且该游戏采用Unity加载lua的方式,并未对Lua代码进行保护,或者使用luajit等提升逆向难度的手段进行源码保护,这就导致源码完全暴露,只需要hookload函数即可从内存中dump出游戏源码。...

概要(游戏安全性评分)

Seraph于2023年11月22日开放三测。Damocles团队于11.24号针对该游戏进行了安全分析与评估,但是评估结果不尽如人意。首先是项目方在代码中留存大量Log信息,并且可以从Log信息推断出项目方并非韩国团队,而是中国团队,且该游戏采用Unity加载lua的方式,并未对Lua代码进行保护,或者使用lua jit等提升逆向难度的手段进行源码保护,这就导致源码完全暴露,只需要hook load函数即可从内存中dump出游戏源码。但是该游戏属于ARPG游戏,该类游戏有天然的防作弊优势,即大部分数据均通过服务器同步,所以又在一定程度上缓解了游戏的安全问题。

Seraph(暗黑) 安全性评估分析报告
安全评分

游戏背景

Ø  进行评估的游戏版本:v0.0.0.6

Ø  游戏类型&游戏引擎:ARPG,Unity

Ø  游戏玩法可能存在的问题:

  • 瞬移

  • 加速(加速移动,加速释放技能)

  • 自动挂机

  • 倍率修改

  • 无敌 Buff修改(让角色可以持续存在增加灵魂晶石产出的buff或其它

游戏安全性分析

游戏代码保护

1.    由于不同的引擎有不同的分析模式,所以在获取到游戏EXE后首先需要确定游戏使用的引擎,通过对游戏基础信息识别我们可以确定该游戏是使用Unity进行开发。

Seraph(暗黑) 安全性评估分析报告

2.    通过游戏目录中的GameAssembly.dll以及global-metadata.dat可以确定游戏采用的是il2cpp的编译模式,于是通过iL2Cppdumper进行源码还原。

Seraph(暗黑) 安全性评估分析报告Seraph(暗黑) 安全性评估分析报告

但是在dump.cs文件中并没有发现跟游戏相关性比较强的代码逻辑,于是猜测该游戏并不是用C#进行开发,而是通过lua进行加载的,于是通过代码Hook游戏loadbuff相关的函数,获取到了游戏真正的源码。

Seraph(暗黑) 安全性评估分析报告Seraph(暗黑) 安全性评估分析报告

并且在游戏源码中发现一些有意思的注释:

Seraph(暗黑) 安全性评估分析报告Seraph(暗黑) 安全性评估分析报告Seraph(暗黑) 安全性评估分析报告



分析结论:

Seraph在游戏代码保护方面得分为0,毫无保护。在采用Lua开发的传统游戏中,往往会采用定制lua解释器,使用LuaJit进行一定程度的代码保护。由于Seraph并没有健全代码保护机制,导致恶意玩家分析代码的门槛与成本都很低,如果有外挂出现,对正常玩家来说是不公平的,且有一定可能会对游戏的经济模型造成影响。

游戏基础反作弊

1.      在基础反作弊检测方面,我们主要是通过替换Lua文件看游戏是否加载与执行外部逻辑进行判断。

2.      通过CE注入工具DLL后,查看游戏的Log文件下,是否将三方Log打印。

Seraph(暗黑) 安全性评估分析报告

3. 通过修改lua逻辑对修改游戏内的暴击率等数据进行修改,发现可以生效并且游戏并不存在检查。(修改属性数据仅是为了更直观的显示,该字段一般来说都是存储在服务器,本地修改时是并没有任何效果的)

分析结论:

Seraph在反作弊能力方面得分为0,如果存在恶意用户可以任意作弊。 2.      只测试将Lua重新加载到游戏的主要原始就是:该行为是进行Lua类游戏作弊的基础,如果该点都无法做好的话,其他方面的反作弊只会更差。

游戏逻辑问题

由于目前已经获取到游戏的源码,所以在分析过程中针对逻辑层我们进行了安全分析,并没有对协议层进行分析,在逻辑层方面我们主要是针对以下几点进行了安全测试,分别是:

角色初始化时的属性篡改:(发现该部分的敏感属性并不多,并不能提升收益)

其次是主动攻击时的一些技能相关的篡改:(发现该部分只做展示并没有实际参与伤害校验)

最后是怪物被攻击时的逻辑修改(发现该点修改后并没有实际的意义,猜测该模块开发时的主要目的是触发事件做记录并不存在实际的计算参与)

分析结论:

  • Seraph在我们随机篡改的三点上均未生效,证明其伤害计算与展示是分离进行,或者是由服务器进行计算其安全性还是有一定保障的,评分3分0。

  • 但是其部分伤害判定存放在本地,作弊空间还是存在的。

游戏RPC分析

该游戏采用protolbuf进行协议交互,其中Web3相关的交互也是使用使用该方案, 目前针对该部分还未进行细致的测试,后期可能会对ProtoBuf部分进行细致测试。

WEB3安全分析:

概要:

目前Seraph并未发行代币,Mint合约为使用代理合约的常规NFT721合约总供应量3225,并且不管是Mint还是跨链,均有Role控制,链上安全性可控。

游戏内经济系统安全:

目前Seraph打金主要方式还是以灵魂晶石为主,不管是打造灵魂之匣还是开起均由服务端进行判定,客户端仅做请求发起,安全性主要由服务端做控制,故其安全性评估不在客户端安全评估范围内,后期Damocles可能会对所有请求进行梳理并黑盒测试。

关于Damocles

Damocles labs 是成立于2023年的安全团队,专注于Web3行业的安全,业务内容包括:合约代码审计,业务代码审计,渗透测试,GameFi代码审计,GameFi漏洞挖掘,GameFi外挂分析,GameFi反作弊。

我们会在Web3安全行业持续发力,并且尽可能多的输出分析报告,提升项目方和用户对GameFi安全的感知度,以及促进行业的安全发展。
Twitter: https://twitter.com/DamoclesLabs
Discord: https://discord.gg/xd6H6eqFHz

相关推荐