iOS 越狱检测

来源:fairguard 发布时间:2021-05-08 15:54:19 点击数:

在 iOS 越狱设备上,游戏外挂开发人员可以对游戏程序砸壳用于逆向分析,也可以利用 substrate 对游戏逻辑进行 hook 从而制作出各种游戏外挂。这些游戏外挂程序可以被其他越狱玩家直接安装,也可以通过 cydia 商店进行分发。鉴于用户使用越狱设备可能带来不良影响,所以很多 app 都会检测设备是否越狱。

我们可以在网络上找到许多越狱检测代码,像[1] [2] [3],但这些代码存在一些问题。

1. 误报/漏报。这些代码都会检测一些文件是否存在,比如 /Application/Cydia.app。如果一台越狱设备未使用 cydia 商店,就会造成漏报;如果一台设备使用了不完美越狱并使用了 cydia 商店,机器重启后其实已经是未越狱状态,但 /Application/Cydia.app 依然存在,这种情况下就会造成误报。

iOS 越狱检测

2. 在反越狱检测插件下失效。市面上存在许多免费的反越狱检测插件,常见的就有 hidejb / abapass / flyjb 等。这些插件对系统接口层做了许多 hook, 过滤所有与越狱相关的字符串,从而使得应用层无法正常检测。下文将分析反越狱插件的一些常见套路。

iOS 越狱检测

我们收集并分析了大量反越狱检测插件,这里展示一些它们绕过越狱检测的常用手段。

1. Hook NSFileManager 的 fileExistsAtPath,过滤越狱相关字符串。

2. 伪造进程模块列表,防止越狱相关模块被检测。

3. Hook stat / access / lstat 等 c 层 api, 过滤越狱相关文件。

4. 对 app 代码中的 svc 汇编代码进行 patch hook, 隐藏越狱相关文件。

我们在分析了大量反越狱插件的基础上,针对性地开发了越狱检测模块,该模块具有以下特点:

1. 不使用网上已有的越狱检测代码&思路,避免上文分析到的问题,不误报。

2. 针对反越狱插件做处理,不漏报。

3. 根据多种运行时信息综合判断,对未知反越狱插件/越狱方式做检测。

丨结语

FairGuard 专注于游戏加固与反外挂,为 Unity / Cocos / UE 等引擎的游戏提供深度一体化加密保护方案。

目前产品已经被FunPlus、Garena、三七互娱、游族等多家头部公司采用。TapTap排行榜以及买量排行榜上亦有多个游戏使用。

产品咨询联系方式:

QQ:2079128588

微信:fairguard01

技术交流QQ群:1105310296

即刻体验FairGuard

即刻体验FairGuard

免费试用游戏游戏安全保护, 对接专业技术服务!

免费体验
首 页
产 品
方 案
客 服
帮助