首页 > 解决方案 > iOS 11.4.1 未越狱时显示设备越狱

问题描述

我一直在使用不同的技术进行越狱检测,直到 iOS 11.4 都可以正常工作。但是,当我将我的 iOS 升级到最新的 11.4.1 时,它显示设备已越狱,而设备未越狱。这个问题我们只在 iOS 11.4.1 和 iOS 12 Beta 中遇到。以下是我们使用的技术:

1.进程分叉

2.“CydiaApp”方案检测

3.检查可疑/根文件夹和文件

4.检查越狱过程中创建的文件夹

5.检查非用户文件夹的写权限

是否有与这些文件和文件夹访问权限相关的任何事情,我们在检测越狱检测时做错了?

任何帮助将不胜感激。

标签: jailbreakios11.4

解决方案


但是哪一个实际上会给您带来误报?

如果我猜的话,我会说检查写权限是不可靠的。iOS 保护对系统文件的未经授权访问的方式不是使用权限,而是主要使用沙箱配置文件。有了这一点,Apple 可以为系统文件分配他们想要的任何权限,沙盒仍然可以保护系统。即使你越狱了你的手机,你仍然有沙盒(不记得任何会完全禁用沙盒的越狱)并且通常受到它的限制,例如,将你的 CydiaSubstrate dylibs 注入在沙盒配置文件下运行的系统守护程序/应用程序中。这就是 iOS 的全部安全性——代码签名、权利、沙盒、IPC。不需要苹果实际上并没有太多使用的 POSIX 权限。

检查可疑目录和文件也可能会给您带来误报,并且通常不是很可靠。Apple 经常更改它的根文件系统,你永远不知道新的 iOS 版本中可能会有什么。当然,如果和Cydia有关的话应该没问题。

这就是为什么 Apple 不喜欢 AppStore 应用程序检查越狱并经常因此而拒绝它们的部分原因。不仅您尝试访问您不应该访问的内容,这使得越狱检测和实际使用私有 API 以规避 iOS 安全性变得难以区分。但是鉴于越狱是关于非常特定的内核补丁以及由于沙盒(启动未签名的二进制文件,修改根分区)而您在 AppStore 应用程序中无法访问的东西,因此一般来说没有可靠的方法来检测越狱。分叉、Cydia、对 CydiaSubstrate 的支持——所有这些都是可选的,取决于特定的越狱实现。随着最近的jalbreaks' s 甚至更相关 - 所有这些都非常不同,并且没有完全完成缺乏过去标准的一些功能。更重要的是,如果 Apple 决定在 iOS 中更改某些内容,可能会意外触发越狱检测代码。假阳性比假阴性更糟糕。

最后,无论你做什么,每一个越狱检测代码都可以很容易地被打补丁或钩住。当您控制系统时,应用程序不再能够保护自己。这都是离题的,但这是忽略越狱的一个很好的理由。


推荐阅读