近年来,游戏市场高速发展,随之而来的还有图谋利益的游戏黑产。在利益吸引下,游戏黑产扩张迅猛,已发展成具有庞大规模的产业链,市面上游戏受其侵扰的案例屡见不鲜。
据《FairGuard游戏安全2022年度报告》数据统计,2022年累计收集外挂样本5826款,同比增长52%;安全对抗更激烈,多项数据呈上涨趋势,全年累计检测游戏安全风险同比增长96%。
2022年FairGuard游戏安全风险分布占比图
因游戏作弊门槛低、游戏安全对抗不对等、黑灰产业链发展完善、法律维权门槛高等因素,游戏安全问题形势愈发严峻,「游戏反外挂」已经成了厂商的必修课。
FairGuard游戏加固基于十余年游戏安全对抗经验,将从外挂实现原理及分类、游戏反外挂方案维度,结合案例进行分析并与大家分享。
常见的游戏外挂攻击方式有:注入、内存修改、变速器、模拟点击、抓包、虚拟环境、破解等。
注入挂,顾名思义是将外挂模块注入到游戏进程空间中,同时执行功能模块的入口函数,多涉及内存操作且功能丰富。
从注入过程上,Android系统一般采用SO注入、ptrace注入、 Zygote注入及感染ELF文件的方式。iOS系统在越狱后可以利用Cydia框架注入dylib实现。
开启外挂并成功注入游戏后,通过外挂界面引导玩家使用功能,随后调用接口函数以HOOK操作来挂钩相应函数、改写参数或者通过调用逻辑,从而实现外挂功能。
Android平台导入表Hook流程图
与其他外挂类型相比,注入挂修改游戏代码逻辑的方式更加灵活多样,并且破解者会通过多种手段隐藏注入模块,导致注入挂的排查难度更高、排查周期更久,对游戏造成的负面影响也更加严重。
内存修改外挂是最常见的外挂种类,实现原理是通过内存修改器来搜索、定位游戏内存,再对数值模块进行修改。
针对游戏不同类型与玩法,内存修改外挂会造成不同程度的危害,如:修改游戏内角色的攻击力的秒杀挂,修改游戏交易货币数量的无限金币挂、修改游戏关键道具数量等,这类外挂会严重破坏游戏的公平性,引发正常玩家不满。
通过修改商品售价实现无消耗购买道具
exe模拟器修改挂本质上是内存修改,但其以exe程序运行在PC端,而游戏运行在PC模拟器中。这时候,外挂不再读写游戏程序内存,而是读写整个模拟器中的数据,通过反复定位,也可以实现内存修改的效果。
exe模拟器修改挂案例演示
这类外挂有两大检测难点:
● 无需开启Root权限即可搜索内存进行数值篡改,让以往的安全环境检测方案难以排查。
● 游戏在运行过程中,数值会实时变动,进行数值排查需要耗费更久的周期,严重影响对抗效率。
众所周知,游戏在运行中需要以帧为单位播放画面,而计算每帧动画播放所需时间,则需要调用C库函数来获取系统时间。如:
// 获取当前精确时间
gettimeofday;
// 获取系统时间
clock_gettime;
这类变速外挂的实现原理就是通过修改获取到的系统时间,来加快或放慢游戏内的时间流速。此外,部分变速外挂通过调用UnityEngine_Time_set_timeScale,传入想要加速的倍数,来实现全局加速效果。
因游戏玩法不同,变速外挂会造成不同的影响,如音乐类、跑酷类游戏可以通过放慢速度,大幅度降低游戏难度。而涉及到养成的游戏则可以加速材料收集进度,缩短游戏的养成周期。
通过加快速度,缩短游戏养成周期
这类外挂会严重破坏游戏的公平性,引发正常玩家不满,如果不加以制止,会急剧缩短游戏的生命周期。
部分外挂作者还会使用静态分析与动态调试相结合的形式,通过逆向分析手段直接修改游戏客户端代码逻辑来制作“破解版”。常见的破解版游戏会外置功能菜单,实现控制数值修改、去除广告甚至内购破解。
某游戏破解版附带的外挂功能
这类破解版游戏会附带一系列吸引玩家的外挂功能,其存在会严重挤压正版空间,对游戏收益造成直接影响。
当下游戏作弊的角度可谓五花八门,除了常见的作弊手段,外挂作者还会通过各种刁钻的角度进行作弊,如篡改游戏内资源文件。
如FPS游戏中,外挂作者通过篡改游戏中地图资源的材质,将其修改成透明,实现了“透视”外挂功能。
相比其他外挂,这类资源篡改外挂角度更加刁钻且难以排查,一旦出现这类外挂,会在短时间内扩散,造成非常严重的游戏平衡问题。
常见的模拟点击外挂可通过设置按键位置、按键顺序、按键间隔时间等参数,制作自动化模拟点击脚本。
某软件的模拟点击功能
在特定的游戏环境下,选择模拟点击方案,从而实现自动打怪,自动任务,自动挂机领奖励等功能。这类模拟点击外挂,会对游戏平衡造成极大影响,破坏正常玩家游戏体验。
在游戏运行过程中,我们点击某个按钮或进行某种游戏行为的时候,客户端会按照跟服务器约定好的规则,将游戏行为请求和参数通过网络封包发送给服务器,服务器收到请求后做出解析,将信息处理后反馈回客户端,客户端再将反馈信息进行解析展示给玩家。
正常状态下游戏数据交互
破解者通常会使用抓包工具,获得游戏封包数据。当破解者抓取到了封包数据并破解后,即可随意篡改游戏内上下行的数据,如游戏角色攻击力、生命值、游戏内胜负逻辑、投降判负逻辑等,从而实现一系列外挂功能。
通讯协议破解后的客户端服务器交互
所谓虚拟环境,是指独立于设备原有系统/破坏设备原有系统的环境,如:iOS越狱、Android Root、虚拟机、虚拟框架、云手机等。这类虚拟环境可以为外挂提供更高级别的设备权限,是游戏外挂滋生的温床。
面对日益庞大的游戏黑灰产侵扰,游戏厂商亟需一支强大、专业的游戏安全队伍。FairGuard以技术为驱动,研发了多项业界独家技术,搭建了针对不同场景及游戏类型的功能矩阵,可覆盖游戏全场景安全问题。
反外挂功能
针对游戏将面临一系列外挂修改风险,FairGuard研发了行为检测方案,搭配200+维度的智能感知系统,可通杀各类外挂及其变种,做到有效防护。
防破解功能
FairGuard业界独家「无API签名校验技术」,对游戏的引擎与代码进行深度加密,并对游戏包签名和文件完整性进行多重校验,极大地减少被绕过的可能性,防止游戏被植入恶意模块、剔除广告等行为。
主动识别恶意模块机制
区别于市面上其他安全产品,需要获取样本后进行外挂打击,FairGuard独家「主动识别恶意模块机制」可对游戏内可疑模块进行主动识别,搭配在线打击功能做到主动防御,大幅缩短外挂排查周期。
反注入器功能
禁止使用Xposed、Frida等各种外挂模块注入器,防止注入后修改游戏内存等各种恶意行为,一旦发现立即闪退。
反引擎级变速
深入游戏引擎底层,对引擎级的变速进行深度检测,获取具体变速倍数,可实现精准封号打击或闪退处理。
变速无效化
采用FairGuard独家无导入函数SO加壳技术,高强度加壳保护游戏内代码,经大量实机测试,可无视任何变速器及其变种,使其变速功能无效化。
资源加密功能
FairGuard独家资源加密方案,深入游戏引擎底层,结合游戏资源文件结构及加载机理精心构造。
可为游戏提供高强度加密保护,具备高兼容性、运行消耗小、性能无影响的特点,支持Android/iOS/PC三平台、支持资源在线更新。此外,方案进行了特殊优化,无需开发对接与接入,加解密对开发透明。
数据校验功能
FairGuard提供数据校验功能,可精准校验游戏上下行数据,保证游戏通讯协议安全,避免出现封包挂、私服问题。
安全环境检测
采用底层检测手段,精准识别游戏运行环境,如:越狱、ROOT、虚拟机、虚拟框架、云手机等,并提供个性化闪退策略。