伴随着手机便利性的提高,手游获得越来越多的游戏玩家青睐。
庞大手游用户群体之中混杂着部分“作弊用户”,他们既影响其他玩家的体验,也侵害了游戏开发商的利益。其背后的外挂开发者通常以低成本的方式,摧残着游戏的寿命,并从中牟取非法利益。更有甚者通过借正规公司渠道贩卖VIP、广告等服务获取违法利益。
图1:大量利用外挂进行牟利
游戏开发商为了保护自身权益,需要快速应对并给出最佳解决方案。为了保障兼容性、用户体验等细节,开发人员需要做大量修改以应对外挂和破解,但这种修改大部分情况下不能及时完成,对于游戏开发商来讲,修改时间越长意味着损失越大。
下面介绍几种通用性比较高、外挂开发者常用的作弊方式。
由于不同引擎的特性,很多游戏受到不同层面的攻击:
一、修改器:
修改器具有通用性,通过读/写游戏内存,对于游戏内部的敏感数据进行非法获取,来达到某一类效果:例如无敌、无限金币、透视、无限CD、修改人物属性等,严重影响了游戏平衡。常见的修改器有:GG修改器、烧饼修改器、八门神器、葫芦侠等。
图2:GG修改器修改内存属性作弊
虽然修改器五花八门、但是其原理通常是采用以下方式进行实现:
1. 通过内核提供的函数读/写内存
2. ptrace附加并调试进程
图3:某修改器通过ptrace读写内存流程
3. 使用read/write函数读写/proc/pid/mem
4. 通过多种方式注入so到游戏进程读/写内存
图4:某修改器通过注入so实现读写内存等功能
二、加速器:
加速器也具有通用性,游戏开发商通常通过使用时间函数来进行相关判断。通过加快或者减慢时间,来达到某一类的效果,例如:体力恢复、竞速类游戏、技能CD等,这类操作严重影响了游戏平衡。常见的加速器有:GG修改器(含有加速功能)、烧饼加速器、叉叉加速器等。
图5:GG修改器修改时间进行加速作弊
下面列举了不同情况下实现加速器的原理:
1. 通用方式:劫持gettimeofday,clock_gettime等时间函数。
图6:某加速器劫持gettimeofday加速
2. U3D引擎:调用U3D引擎提供的函数直接设置时间倍率实现。
3. Cocos2D引擎:修改Cocos2D引擎提供的函数实现。
三、虚拟空间:
通常修改器和加速器在使用的过程中需要更高的Root权限以实现对游戏进程进行操作。虚拟空间的出现解决了这一些问题,他能够使游戏进程和外挂进程隶属于同一个用户空间,并直接对游戏进行非法操作,其需要代理系统服务等一类的操作,但这一类操作能够被主流游戏安全厂商所检测。
下面展示了虚拟空间被外挂开发者所利用,实现手机免root也能够使用外挂的方式。
图7:在多开器中运行作弊软件免Root运行
四、修改代码逻辑重打包:
由于游戏引擎各不相同,游戏代码逻辑存在于不同位置,针对不同游戏需要不同的处理方式。
1. mono
mono是Unity运行dll脚本十分重要的组件,而dll脚本存储在 asset/bin/data/managed目录下,外挂分析者能够直接反编译Assembly-CSharp.dll修改代码逻辑进行破解,达到免费购买、增加伤害、攻击加速等非法功能。
图8:某破解者公布的破解某游戏Assembly-CSharp.dll细节
图9:破解者破解后的效果
2. il2cpp
il2cpp是Unity另一种运行游戏代码逻辑的方式,这种方式与mono的不同之处在于它将dll中的IL指令在编译的过程中翻译成cpp。并编译成so,执行游戏的代码逻辑。这种游戏引擎的方式的确增加了破解者的破解难度,但仍然很容易被攻破。修改libil2cpp.so的代码逻辑同样也能实现非法功能。
图10:某破解者公布的破解游戏libil2cpp.so方法
3. cocos2d
针对cocos2d的引擎,其代码核心逻辑主要存在于lua代码中,游戏开发商如果使用不经过任何保护的cocos2d引擎,则等于直接将源代码暴露给破解者,破解者能够很容易的破解游戏逻辑功能。
图11:某破解者直接攻击引擎获取游戏资源
更多的作弊方式由于篇幅原因也就不再一一列举(如:重打包修改资源文件、注入外挂功能脚本等)。
通过上述作弊方式的介绍,相信各位也意识到,游戏厂商想要肃清外挂,保证游戏玩家体验,考虑接入主流游戏安全厂商是一个明智和必要的选择。
网易易盾的手游反外挂系统结合网易多年游戏安全实战积累,围绕游戏行业常见安全风险,提供一站式全生命周期手游解决方案。易盾手游保护使用深度研究行为检测的方式,不需要使用黑名单,即使是新修改器、加速器,或者是变种,都可以即时检测。
目前独家提供U3D函数级加密功能。通过脚本加密组合文件校验,防二次打包等功能,进行全方位破解防护。提供最高可压80%的压缩服务,同时支持Android和iOS。易盾手游保护同时支持对U3D及Cocos资源进行加密,独家研发的U3D资源加密还支持在线更新。
除了上述比较大的功能点,易盾手游保护还提供防Xposed、防多开器、反云真机、反地理位置模拟、防模拟器、防二次打包、防抓包、防VPN、防脱机、存档加密、文件校验等十多个功能。