游戏如何检测iOS越狱

不同于安卓的开源生态,iOS一直秉承着安全性更高的闭源生态,系统中的硬件、软件和服务会经过严格审核和测试,来保障安全性与稳定性。

据FairGurd观察,虽然iOS系统具备一定的安全性,但并非没有漏洞,如市面上常见的作弊手段------iOS越狱。

iOS越狱工具Unc0ver

iOS越狱是指通过软件或硬件漏洞,移除或绕过苹果在iOS设备上的操作系统限制,从而获得设备的最高权限。

设备越狱后,用户可以通过获取的最高权限,安装 Cydia 管理器等软件,从而绕过 App Store 安装各种未审核的插件、外挂,来修改系统文件,甚至访问系统级别的API。

Cydia管理器

而具体到游戏作弊场景,外挂作者可以对游戏程序砸壳用于逆向分析,也可以利用 substrate 对游戏逻辑进行 hook 从而制作出各种游戏外挂。

这些游戏外挂程序可以被其他越狱玩家直接安装,也可以通过 Cydia 管理器进行分发。鉴于用户使用越狱设备可能带来不良影响,所以很多游戏都会检测设备是否越狱。

常见的越狱检测手段有:检查越狱文件和目录、检查权限、检查Sandbox等,可以通过这些维度来判断设备是否处于越狱状态,但这其中也存在一些问题。

常见的iOS越狱检测手段

如:在检查越狱文件和目录时,通常会检查 /Application/Cydia.app 是否存在,但如果一台越狱设备未使用 Cydia 商店,就会造成漏报。

还有一种情况,如果一台设备使用了不完美越狱,并使用了 Cydia 商店,设备重启后会恢复到未越狱状态,但 /Application/Cydia.app 依然存在,这种情况下就会造成误报。

其他情况下,作弊者可以使用反越狱检测插件来躲避检测。常见的插件有HideJB/abapass/fyjb 等。

这些插件对系统接口层做了许多 hook,能够过滤所有与越狱相关的字符串,从而使得应用层无法正常检测。

HideJB操作界面

此外,FairGuard收集并分析了大量反越狱检测插件,总结了一些它们绕过越狱检测的常用手段:

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

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

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

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

针对iOS端面临的越狱难题,FairGuard在分析了大量反越狱插件的基础上,针对性地开发了越狱检测模块及配套的安全功能,并接入多款热门游戏并验证了出色的保护能力。

反越狱保护

采用独家检测技术,做到精准识别不误报,会根据多种运行时信息综合判断,对未知反越狱插件/越狱方式做检测,针对反越狱插件做处理,不漏报。

反调试保护

双重防护,先使用ptrace、syscall、sysctl、异常等检测方式,再对防护代码进行加密保护,效果更佳。

反重签名保护

精准校验包体内签名,使用加固时存储的签名,与运行时获取的签名进行对比。

反修改器保护

在代码对抗防护阶段,FairGuard提供本地检测代码,并保护其有效性。

此外,FairGuard研发了在线特征更新检测功能,获取样本后可第一时间下发特征,用最短的时间保护App的安全性。

相关推荐
太子釢5 小时前
用 AI 完整实现 Github 客户端:基于 KMP + SwiftUI + Compose
android·人工智能·ios
软泡芙6 小时前
【iOS】 Alamofire + Moya + SwiftData 完整教程
ios
笨鸟先飞的橘猫6 小时前
系统设计思维训练——方法论
游戏·思维训练
我是谁的程序员7 小时前
Windows / Linux / Mac 上不用 Xcode 把 IPA 上传到 App Store,upload 命令详解
后端·ios
iFlyCai7 小时前
iOS中的单例模式详解
ios·单例模式·objective-c·多线程·swift
ilawsonlu11 小时前
如何正确处理 CoreBluetooth 超时与 Task Cancellation
ios
00后程序员张11 小时前
SSL Pinning 抓包抓不到明文?绕过证书固定的几种方案
网络协议·计算机网络·网络安全·ios·adb·https·udp
2601_9665635212 小时前
SFC游戏下载解压即玩 经典游戏整合版 包含SFC游戏合集1460个
游戏
ii_best13 小时前
手机自动化脚本按键精灵实战:随机布局安全数字键盘的自动化输入方案
android·运维·ios·自动化·手机
软泡芙1 天前
【IOS】Codable
ios·ssh·cocoa