游戏如何检测iOS越狱

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

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

FairGuard

iOS越狱工具Unc0ver

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

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

Cydia管理器

Cydia管理器

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

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

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

常见的iOS越狱检测手段

常见的iOS越狱检测手段

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

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

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

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

HideJB操作界面

HideJB操作界面

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

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

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

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

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

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

反越狱保护

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

反调试保护

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

反重签名保护

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

反修改器保护

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948175.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GraphRAG vs 传统 RAG:如何通过知识图谱提升 AI 检索能力

相比传统 RAG 仅能独立检索文本片段的局限性,GraphRAG通过构建实体关系图谱实现了信息间的连接,让 AI 能更完整地理解和检索复杂的关联信息,从而生成更准确和连贯的回答 问题背景: 想象有一本详细记录某人(X)成就的传记,每个章节都描述了他的…

Linux平台下实现的小程序-进度条

目录 1.换行、回车概念 2.缓冲区 2.1缓冲区 2.2强制刷新 3.进度条程序 Makefile文件 ProgressBar.h ProgressBar.c Main.c 执行结果 1.换行、回车概念 /n:换行回车(\r:回车) 2.缓冲区 如下图在vim编辑器中的命令模式下…

【顶刊TPAMI 2025】多头编码(MHE)之Part 6:极限分类无需预处理

目录 1 标签分解方法的消融研究2 标签分解对泛化的影响3 讨论4 结论 论文:Multi-Head Encoding for Extreme Label Classification 作者:Daojun Liang, Haixia Zhang, Dongfeng Yuan and Minggao Zhang 单位:山东大学 代码:https:…

【Leetcode】732. 我的日程安排表 III

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 当 k k k 个日程存在一些非空交集时(即, k k k 个日程包含了一些相同时间),就会产生 k k k 次预订。 给你一些日程安排 [startTime, endTime…

Tableau数据可视化与仪表盘搭建-数据连接

连接数据有三种类型 第一种,连接到本地文件,例如Excel,csv,JSON等 第二种,连接到数据库,例如MySQL 注意:连接到数据库要安装对应的数据库的驱动的 连接本地文件

Chapter4.2:Normalizing activations with layer normalization

文章目录 4 Implementing a GPT model from Scratch To Generate Text4.2 Normalizing activations with layer normalization 4 Implementing a GPT model from Scratch To Generate Text 4.2 Normalizing activations with layer normalization 通过层归一化(La…

搭建开源版Ceph分布式存储

系统:Rocky8.6 三台2H4G 三块10G的硬盘的虚拟机 node1 192.168.2.101 node2 192.168.2.102 node3 192.168.2.103 三台虚拟机环境准备 1、配置主机名和IP的映射关系 2、关闭selinux和firewalld防火墙 3、配置时间同步且所有节点chronyd服务开机自启 1、配置主机名和…

GPIO、RCC库函数

void GPIO_DeInit(GPIO_TypeDef* GPIOx); void GPIO_AFIODeInit(void); void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct); //输出 读 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx,…

使用JMeter玩转tidb压测

作者: du拉松 原文来源: https://tidb.net/blog/3f1ada39 一、前言 tidb是mysql协议的,所以在使用过程中使用tidb的相关工具连接即可。因为jmeter是java开发的相关工具,直接使用mysql的jdbc驱动包即可。 二、linux下安装jmet…

Launcher3主页面加载显示流程分析

布局结构 抓取布局后,可以看到每个图标是一个DoubleShadowBubbleTextView,父布局是CellLayout、workspace。 我们可以在CellLayout添加子view打印出调用堆栈信息,可以整体上看页面加载显示流程。 主要类 Launcher.java:主界面&…

开发培训:慧集通(DataLinkX)iPaaS集成平台-基于接口的连接器开发(不需要认证机制)

一、开发一个简单的应用0源,本实例中对接的应用不需要接口认证 1、【连接管理-自建】新建应用源,保存并发布 代码示例 return {$$ - >//日志打印$$.$Log.info(日志打印) } 二、使用应用,建立应用连接 1、实例创建,【连接管理…

pikachu靶场--目录遍历和敏感信息泄露

pikachu靶场—目录遍历和敏感信息泄露 目录遍历 概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再…

机器学习详解(13):CNN图像数据增强(解决过拟合问题)

在之前的文章卷积神经网络CNN之手语识别代码详解中,我们发现最后的训练和验证损失的曲线的波动非常大,而且验证集的准确率仍然落后于训练集的准确率,这表明模型出现了过拟合现象:在验证数据集测试时,模型对未见过的数据…

Word2Vec解读

Word2Vec: 一种词向量的训练方法 简单地讲,Word2Vec是建模了一个单词预测的任务,通过这个任务来学习词向量。假设有这样一句话Pineapples are spiked and yellow,现在假设spiked这个单词被删掉了,现在要预测这个位置原本的单词是…

#渗透测试#漏洞挖掘#WAF分类及绕过思路

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

电子应用设计方案85:智能 AI门前柜系统设计

智能 AI 门前柜系统设计 一、引言 智能 AI 门前柜系统旨在提供便捷、安全和智能的物品存储与管理解决方案,适用于家庭、公寓或办公场所的入口区域。 二、系统概述 1. 系统目标 - 实现无接触式物品存取,减少交叉感染风险。 - 具备智能识别和分类功能&am…

如何在不丢失数据的情况下从 IOS 14 回滚到 IOS 13

您是否后悔在 iPhone、iPad 或 iPod touch 上安装 iOS 14?如果你这样做,你并不孤单。许多升级到 iOS 14 beta 的 iPhone、iPad 和 iPod touch 用户不再适应它。 如果您在正式发布日期之前升级到 iOS 14 以享受其功能,但您不再适应 iOS 14&am…

线性代数考研笔记

行列式 背景 分子行列式:求哪个未知数,就把b1,b2放在对应的位置 分母行列式:系数对应写即可 全排列与逆序数 1 3 2:逆序数为1 奇排列 1 2 3:逆序数为0 偶排列 将 1 3 2 只需将3 2交换1次就可以还原原…

设计心得——流程图和数据流图绘制

一、流程图和数据流图 在软件开发中,画流程图和数据流图可以说是几乎每个人都会遇到。 1、数据流(程)图 Data Flow Diagram,DFG。它可以称为数据流图或数据流程图。其主要用来描述系统中数据流程的一种图形工具,可以将…

SpringBoot框架开发中常用的注解

文章目录 接收HTTP请求。RestController全局异常处理器Component依赖注入LombokDataBuildersneakyThrowsRequiredArgsConstructor 读取yml文件配置类注解 接收HTTP请求。 RequestMapping 接收HTTP请求。具体一点是 GetMapping PostMapping PutMapping DeleteMapping 一共…