我一直在使用不同的技术来进行越狱检测,直到iOS 11.4都可以正常工作。但是,当我将iOS升级到最新的11.4.1时,它向我显示该设备在没有安装时已越狱。我们仅在iOS 11.4.1和iOS 12 Beta中面临此问题。 以下是我们使用的技术:
1。流程分叉
2。“ CydiaApp”方案检测
3。检查可疑/根文件夹和文件
4。检查在越狱过程中创建的文件夹
5。检查非用户文件夹的写权限
检测到越狱检测是否与这些文件和文件夹访问权限有关,所以我们做错了吗?
任何帮助将不胜感激。
答案 0 :(得分:0)
但实际上哪一个给您带来假阳性?
如果我猜的话,我会说检查写权限是不可靠的。 iOS保护未经授权访问系统文件的方式不具有权限,而主要具有沙箱配置文件。有了此功能,Apple可以将他们想要的任何权限分配给系统文件,沙箱仍将保护系统。即使您的手机越狱了,您仍然可以使用沙箱(不记得任何会完全禁用沙箱的越狱),并且经常受到它的限制,例如,将CydiaSubstrate dylib注入在沙箱配置文件下运行的系统守护程序/应用程序中。这就是iOS的全部安全性-代码签名,授权,沙箱和IPC。不需要POSIX权限,而Apple实际上并没有使用太多。
检查可疑目录和文件还会给您带来误报,而且通常不太可靠。 Apple经常更改其根文件系统,而您永远不知道新的iOS版本中可能会有什么。当然,如果与Cydia有关,那应该没问题。
这就是部分原因,为什么Apple不喜欢AppStore应用程序检查越狱并因此而拒绝它们的原因。不仅您尝试访问不应访问的内容,这也使得很难区分越狱检测和私有API的实际使用来规避iOS安全性。但是,鉴于越狱是针对非常特定的内核补丁的,并且由于沙箱操作(启动未签名的二进制文件,修改根分区)而使您无法在AppStore应用程序内部进行访问,因此通常没有可靠的方法来检测越狱。 Cydia的Forking,对CydiaSubstrate的支持-所有这些都是可选的,并取决于特定的越狱实现。在最近的越狱事件中,这一点更为重要-所有这些都非常不同,并且还没有完全缺乏过去的一些标准功能。更重要的是,如果Apple决定在iOS中进行更改,则可能会偶然触发越狱检测代码。误报要比误报差得多。
最后,无论您做什么,每个越狱检测代码都可以轻松地打上补丁或挂钩。当您控制系统时,应用程序将不再能够自我保护。这些都是题外话,但这是忽略越狱的一个很好的理由。