游戏外挂是一种可以帮助玩家自动完成游戏操作、修改游戏数据、达成自己作弊行为的游戏外部辅助程序。2019 年手机游戏用户达到6.2亿人,市场规模高达1581亿元。手机游戏市场的繁荣,与之对应的是手机游戏外挂的猖獗。根据资料显示,2018年共检测到手游外挂达4000多款,可见,游戏外挂逐渐向竞技类手游辅助转型。游戏外挂损害了游戏的平衡性,破坏了其他用户的游戏体验,影响了游戏服务器的稳定,阻碍了游戏产业的发展。
1、通用类外挂
(1)模拟器
模拟器是一种在个人电脑上运行并能够模拟出手机ios 系统或者Android系统的软件,可以如同使用手机一般安装、使用和卸载应用,利用模拟器,玩家能够在电脑上运行手机游戏软件。相较于手机,个人电脑的各项性能更好,所以玩家在使用模拟器玩游戏时,操作更加方便、运行更加流畅、网络连接更稳定、游戏视线更好。
手游外挂运行流程图
从外挂开发者的角度看,手游模拟器对使用者来说可以视为一个“黑盒”,能够方便的在外部实现内存修改和函数 hook操作。而手游本身难以检测个人电脑上的外挂程序,也很难通过对内存注入渠道进行监控以达到防修改的目的,因此很多手游外挂也需要借助模拟器去实现外挂功能。
(2)按键精灵
按键精灵需要预先输入一段按键序列,在收到用户请求后,软件自动模拟该按键序列以及点击鼠标,以实现自动签到、自动挂机等功能,该类型外挂主要用于RPG游戏。有的还加入了图像识别功能并分析客户端的内存情况进而能够实现自动打怪,自动补血,自动补兵等功能。
(3)变速齿轮
变速齿轮通过利用HOOK 时间API,如GetTickCount、 timeGetTime、QueryPerformanceCounter等,来修改每帧更新相关的变量,进而改变游戏时间。以枪战手游为例,使用变速齿轮后,计分板显示的时间变化加快,同时玩家移动速度、更换弹夹速度、开枪速度加快,而正常的玩家移动、更换弹夹都是正常的速度。
2、专用插件
专用插件类外挂是指针对特定游戏定制的外挂,其在实现方式上,类似插件,能够将功能模块注入到游戏进程空间中,同时执行功能模块的入口函数。而该类外挂的功能较通用类外挂更丰富,多涉及内存操作。
从注入过程上,Android系统一般采用ptrace注入、 Zygote注入和感染ELF文件的方式实现注入过程。IOS系统在越狱后可以利用Cydia框架注入dylib。开启外挂并成功注入游戏后,加在外挂界面引导玩家使用其功能。收到玩家的指令后,外挂通过调用接口函数以HOOK操作游戏的关键函数和修改游戏内存数据,以实现外挂功能。
应对手游行业面临的外挂安全风险,加强运行时保护、应用代码保护、资源文件保护是至关重要的。几维安全具有深耕游戏行业多年的经验,熟悉各种攻击的手法和风险的根源,针对游戏风险的防护,需要结合设备环境检测、美术资源加密、文件完整性校验、关键代码高强度加密等保护手段,最终实现防外挂、防破解、防盗版、防资源窃取的全面深度保护效果。