在游戏安全对抗过程中,除了常见的内存修改、加速、破解等作弊手段,还有一类危害严重的外挂——「注入挂」。
据FairGuard游戏安全数据统计,在游戏面临的众多安全风险中,注入挂的占比高达17% 。如此高的占比,可见注入挂的危害严重程度。
FairGuard数据统计:游戏安全风险占比
注入挂的实现原理也十分多样。Android 系统可采用 SO 注入、ptrace 注入、 Zygote 注入和感染 ELF 文件等方式实现。
本文我们将重点讲解 Xposed 框架及其变种的注入原理及解决方案。
Xposed 框架操作界面
在 Android 系统中,所有应用程序进程都是由 Zygote 进程孵化出来的,Xposed 的实现原理就是通过替换 /system/bin/app_process 程序来控制 Zygote 进程。每当游戏进程启动时,都会先启动 Xposed 替换过的文件,并加载相关代码,从而完成注入。
在完成注入后,可以使用 Xposed 框架的 Hook 功能,具体表现为:在目标函数执行之前或之后插入自定义的代码逻辑,从而实现对函数行为的定制和修改。如 Hook 游戏中己方角色的攻击函数,实现“倍攻挂”等。
LSPosed 框架自带隐藏功能可躲避检测
而作为一款早期的开源框架,Xposed 框架的功能性与兼容性也在不断升级。衍生出了 EdXposed 框架,在此基础上又兼容了 Magisk ,演变出了自带隐藏功能来躲避检测的 LSPosed 框架。
因涉及替换 /system/bin 文件,Xposed 框架的运行需要设备提供 Root 环境,而在虚拟框架、虚拟机及部分模拟器中,恰好可以提供 Root 环境,大幅降低了 Xposed 的使用门槛。
部分可运行 Xposed 框架的虚拟机、虚拟框架及模拟器
在作弊原理的角度看,Xposed 框架避免了传统修改系统的方式,如重新编译、刷写ROM等。Xposed 框架的修改方式更加灵活、方便,可在不影响应用程序的签名和完整性情况下,对游戏数值模块、运行逻辑进行修改。并有以下几个检测难点:
- 变种众多,Xposed 框架开源已久,具有大量的变种及魔改版,作弊角度更加多样化,加大了检测排查难度。
- 作弊情况复杂,Xposed 框架目前多置于虚拟机、虚拟框架中,通过搭配使用Magisk等插件,可以实现对游戏隐藏外挂工具进程,来躲避检测。
针对游戏面临的注入挂风险,FairGuard定制了专门的应对策略,该方案已接入多款热门游戏并验证了出色的保护能力。
主动识别恶意模块机制
区别于市面上其他安全产品,需要获取样本后进行外挂打击,FairGuard独家「主动识别恶意模块机制」对可疑模块进行主动识别,搭配在线打击功能做到主动防御,大幅缩短外挂排查周期。
反注入器功能
禁止使用Xposed、Frida等各种外挂模块注入器,防止注入后修改游戏内存等各种恶意行为,一旦发现立即闪退。
反调试功能
防止外挂作者对游戏进行调试,阻止对游戏的静态或动态分析,一旦发现立即闪退。
安全环境检测功能
不同于市面上其他产品,FairGuard加固采用更底层的检测手段,可精准识别虚拟框架、虚拟机、越狱、ROOT、云手机等各类风险环境,并提供个性化闪退策略。