【问题标题】:iOS 11.4.1 shows device Jailbroken when it is notiOS 11.4.1 未越狱时显示设备越狱
【发布时间】:2019-01-24 05:13:30
【问题描述】:

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

1.进程分叉

2.“CydiaApp”方案检测

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

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

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

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

我们将不胜感激。

【问题讨论】:

  • 您忽略了哪些触发了这些事件。但是,如果您正在测试 /var 中的任何内容,这些文件将在更新后持续存在。
  • 这个问题在所有 iOS11.4.1 中都无法重现。因此,我无法找到根本原因,或者哪个检测实际上失败了。
  • 您提供了您检查的内容的列表。那为什么不能一一检查,看看哪一个有问题呢?

标签: jailbreak ios11.4


【解决方案1】:

但是哪一个实际上给了你误报?

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

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

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

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

【讨论】:

  • 感谢@creker 的回复。我找不到给出误报的 API,因为问题不是 100% 可重现的,并且问题观察的频率小于 10%。你能建议我如何继续检查哪个实际上给出了误报。
  • 为什么不记录每张支票呢?给它多次运行,直到它触发并读取日志。
猜你喜欢
  • 2020-10-23
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
相关资源
最近更新 更多