在游戏安全对抗过程中,有不少外挂的实现基于对游戏内存模块进行修改,这类外挂通常会使用内存修改器,除此之外,还有一种门槛相对更高、也更难检测的「注入挂」。
据FairGuard游戏安全数据统计,在游戏面临的众多安全风险中,注入挂的占比高达17% 。如此高的占比,可见注入挂的危害严重程度。
FairGuard数据统计:游戏安全风险占比
注入挂的实现原理也十分多样。Android 系统可采用 SO 注入、ptrace 注入、 Zygote 注入和感染 ELF 文件等方式实现。本文我们将重点讲解 Frida 框架及其变种的注入原理及解决方案。
Frida 是一款动态插桩工具,可以将代码插入到原生 APP 的内存空间中,并进行动态调试与修改。
Frida官网介绍
其注入原理是基于 ptrace 实现的,Frida 通过调用系统 ptrace 向游戏进程注入 frida-agent-xx.so 模块,通过这个模块与手机端安装的 frida-server 通讯,从而实现一系列分析与 hook 操作,如 hook 游戏中己方角色的攻击函数,实现“倍攻挂”等。
Frida 与 ida 联合调试apk
由于 Frida 的配置环境简单、操作便捷,支持Java 层和 Native 层 hook 操作,并且使用 python、JavaScript 等 “胶水语言”,大幅度降低了逆向分析、作弊修改的门槛,除此之外,Frida 还存在以下检测难点:
- 变种众多,Frida 作为一款成熟的开源工具,具有大量的变种及魔改版,如常见的 hluda-server ,这些变种可以隐藏 Frida 特征,绕过传统的检测手段,加大检测排查难度。
- 作弊情况复杂,Frida 基于python 、 javascript 语言,可以通杀 Android、iOS、Linux、Windows 等平台,在不同平台上可搭配不同工具实现作弊。
针对游戏面临的注入挂风险,FairGuard定制了专门的应对策略,该方案已接入多款热门游戏并验证了出色的保护能力。
主动识别恶意模块机制
区别于市面上其他安全产品,需要获取样本后进行外挂打击,FairGuard独家「主动识别恶意模块机制」对可疑模块进行主动识别,搭配在线打击功能做到主动防御,大幅缩短外挂排查周期。
反注入器功能
禁止使用Xposed、Frida等各种外挂模块注入器,防止注入后修改游戏内存等各种恶意行为,一旦发现立即闪退。
反调试功能
防止外挂作者对游戏进行调试,阻止对游戏的静态或动态分析,一旦发现立即闪退。
安全环境检测功能
不同于市面上其他产品,FairGuard加固采用更底层的检测手段,可精准识别虚拟框架、虚拟机、越狱、ROOT、云手机等各类风险环境,并提供个性化闪退策略。