在2019年手机游戏用户达到6亿多人,市场规模高达1500多亿元,手游市场繁荣,同时也伴随着手游外挂的泛滥。
现如今手游行业里普遍存在的一个现象,部分恶意玩家使用多开,外挂等程序,给游戏厂商造成了不小的损失。这些游戏玩家在一台手机上开多个游戏,登录多个小号,组队做任务,刷怪,批量刷道具。此外,由于多开的特殊性,还可以用多开软件来达到篡改游戏数据,嵌入外挂等恶意行为。
手游外挂的存在会严重破坏游戏公平性,影响游戏口碑和开发者的利益。外挂蛀虫长期不得到解决,既使得一部分正常玩家流失,也使得游戏逐渐的淡出视野、关注度降低,可以说危害非常大。
一、多开原理 – 知己知彼
当前,多开技术逐渐成为黑灰产非法谋利的“温床”。黑灰产通过多开技术刷取获取游戏币来实现变现。一般而言,黑灰产通过以下4种方式来达到作弊的目的。
1.新的进程方式多开
其原理是通过Hook系统函数来修改四大组件和一些系统服务,达到多开效果。
2.通过修改APK,重新安装一个APK
在进程中可以观察到,每多开一个APP,就多一个包名不同,但APP内容相同的进程。
3.手机厂商自带的多开
厂商在手机源码层FrameWork进行修改来达到多开效果。
4.通过Frida来实现多开的效果
原理大致是Hook了“多用户管理类”来创建多用户。
二、安全隐患 – 快速响应
Android多开带来众多安全隐患,主要包括:
○ 通过多开运行游戏,一定程度上短期内避开外挂检测。
○ 游戏数据被篡改使得游戏失去公平性。
○ 加载一些恶意外挂程序进行对用户账号造成一定危害。
○ 多开用到Hook导致游戏运行不稳定,崩溃影响体验。
基于以上提到的几点隐患,易盾反外挂在这方面通过多年的积累,深入研究外挂多开检测技术,即使外挂更新频繁,通过“大数据+人工智能”分析,能在最的的时间内分析出外挂特征,以最快的速度做出相应,并且将结果反馈给游戏厂商,在一定程度上使得外挂能够被快速检测处理,降低了外挂对游戏的危害。
三、检测方案 – 解决问题
方式一:通过私有的Activity检测
在AndroidManifest中配置Activity设置为android:exported=”true”,这样在应用中queryIntentActivities来检测是否有多个这样的Activity,因为这个Activity有且只有一个。
在AndroidManfest.xml中配置
使用API来获取Activity的数量
方式二:通过用户标识号来检测
多开环境中,/data/data目录下会找到多个应用目录,如果在不多开的情况下,这个目录只有一个。
一个UID下面只有一个应用进程
一个UID下面有多个应用进程
方式三:检测当前应用目录
应用的私有目录在同一台手机上是固定的目录,系统提供的API,getFilesDir可以获取到这个目录,在多开的情况下路径中会出现多开APP的包名在最开头的一部分内容中。
但是部分多开软件会Hook一些系统函数,使得获取路径“看起来”是正常的,不过通过情况下,检测多开也是多个维度检测的,这种绕过检测方式也还是有局限性的
方式四:检测/proc/self/maps
多开的应用通常需要在进程中加载一些多开的SO来达到效果,所以每个多开进程中都会存在一些SO文件,可以通过检测maps下的文件来匹配否是否存在一些我们已知的SO文件。
这种方式有一个缺点就是,SO文件名称多变,检测方式和第3中检测方式一样需要积累比较多的名称来匹配。
四、多开检测总结
多开技术在外挂程序中比较常见,危害也显而易见的,尤其是嵌入外挂程序后篡改游戏数据,批量注册小号,打怪,做任务等等。
易盾通过多年技术深耕,在外挂检测方面有着诸多积累,具备了识别外挂,多开,加速器,脚本、模拟器等检测对抗功能,并且在兼容性,安全性,便捷性方面已经具有一定的优势。检测识别方案也在不断的更新,能够精准检测、识别、反馈外挂给游戏厂商,从而有效打击外挂。结合“大数据+人工智能”的最新技术,易盾的检测方案具备了及时发现、处理外挂的特点,进一步保护游戏不被外挂损害,为游戏厂商提供有效的保护。
本文地址:https://blog.csdn.net/yidunmarket/article/details/109366701