手游市场的火热,引来了牟取利益的游戏黑灰产,市面上大量手游都面临着不同程度的游戏安全问题。如常见的:内存修改、模拟点击、注入等外挂作弊手段,以及危害程度更高的「破解」作弊手段。
破解是指破解者使用工具去除了游戏签名校验,对游戏内代码逻辑进行逆向分析、调试,修改游戏数值、逻辑、植入功能菜单等操作,从而制作出破解版游戏。
++直装破解则是在破解版的基础上额外增加了绕过登录验证的功能,直装破解版下载即可爽玩,对作弊玩家有更高的吸引力,对游戏的危害也更严重。++
本文将通过案例分析手游直装破解原理,并提供针对性的检测方案。

手游直装破解现象十分猖獗
制作游戏破解版通常会用到逆向修改工具,如:MT管理器,可在获取 Root 权限后可访问系统目录,挂载文件系统为读写,修改文件权限和所有者。
其主要功能为:去除签名校验、APK 编辑、DEX 编辑、XML 编辑、APK 签名、RES 反资源混淆等。

MT管理器去除签名校验功能
在去除签名校验后,破解者会反编译游戏的代码逻辑,并对内存数值与游戏逻辑进行篡改,实现各种外挂修改功能,并植入菜单模块来方便操作。

破解版游戏通常会附带一系列修改功能菜单
最后,破解者会对破解版进行二次打包。将带正版包体嵌套在破解包内,利用Hook 框架,或通过 IO 重定向、系统 API 覆写技术,将检测代码的调用目标劫持到嵌套在破解包内的正版包。
这样一来,游戏启动进行签名校验时,获取到的是正版签名,而游戏运行时则是破解版包体内容。这一点往往也会体现在包体大小上,破解版的包体大小近乎为正版的两倍。

某游戏正版与破解版包体大小对比
++除了上述手段,我们还观察到使用去签名工具 SRPatch 绕过签名校验的案例。++
SRPatch 是专为Android平台设计的APK去签名工具,可以一键绕过原始签名校验限制,并支持多种去签方案,可实现APK的二次修改、调试测试及高效重打包。

SRPatch去除签名功能
以PMS Hook 功能为例,SRPatch会删除 / 清空 APK 中 META-INF 目录下的签名核心文件,直接破坏系统静态签名校验的数据源,再通过 Hook PMS进程,修改其执行逻辑,从而让系统跳过对 APK 的签名合法性验证。
++相比外挂,破解对游戏造成的影响更加恶劣,游戏直装破解版往往会附带一系列变态的修改功能,会严重破坏游戏的平衡性,造成正版玩家大量流失,厂商收益受损等后果,而且游戏内的代码、美术资源也存在被盗用、被剧透的可能。++ 针对游戏面临的直装破解风险,FairGuard定制了专门的应对策略。