iOS 用户权限

标签 ios iphone jailbreak user-permissions

在 iphone 上,有些事情是越狱手机可以做的,而非越狱手机则不能。我认为必须有一个为用户配置的权限列表,并且该列表在越狱过程中发生了变化。

任何人都可以告诉我如何获取权限列表(通过代码)或将我链接到任何相关文档?

最佳答案

沙盒

安全带(沙盒)配置文件“容器”强制执行某些权限 - 它是 /var/mobile/Applications 内所有应用程序的默认配置文件(直到 iOS 7.x)或 /var/mobile/Containers (自 iOS 8 起)目录,即 AppStore 应用程序。你可以阅读它here .它可能已经过时,但应该让您对它的工作原理有所了解。

据我所知,沙盒是作为内核扩展实现的。它使用各种系统调用的钩子(Hook)来检查调用进程是否有权进行调用。

越狱不会关闭沙箱,至少它不应该也不需要越狱。几乎所有东西都按原样工作。越狱之间存在一些差异,某些版本明显违反了沙盒规则。例如,您可以读取通常无法读取的应用程序目录之外的文件。

沙盒不关心进程是否具有 root 访问权限。这是一个完全不同的安全层。它不仅用于 AppStore 应用程序。许多系统守护程序和应用程序都有自己非常严格的沙箱配置文件,即使它们以 root 执行。 .

权利

权利是授予权限的另一种方式。权利类似于 Android 权限,但它们位于应用程序二进制文件中作为二进制属性列表并受代码签名保护。所以你不能添加任何你想要的东西。对于即使在越狱手机上也能运行的 AppStore 应用程序,除非您安装 AppSync 调整,它会关闭代码签名检查,并且应该(我自己没有测试过,但应该可以)允许您签署具有任何权利的 AppStore 应用程序。

对于其他进程,默认情况下禁用代码签名检查,以便您可以编写自己的 cydia 调整/应用程序并使用您想要的任何权利对其进行签名,只要它们位于“容器”沙箱配置文件目录之外。

权利与沙盒不同。特定权利的检查不在内核或某些系统守护程序中完成 - 您正在调用的实际代码进行检查。例如,当您要发送 SMS 消息时。您可以通过发送将由 CommCenter 守护进程接收的 XPC 消息来完成此操作,该守护进程在用户空间中实现所有与基带相关的内容(私有(private) ChatKit.framework 就是这样做的)。 CommCenter 然后在继续请求或拒绝访问之前检查调用进程是否需要权利。许多 API 实际上使用 IPC 到某些系统守护进程来获取数据。 CoreTelephony ,例如,只是到 CommCenter 的 IPC 接口(interface)。守护进程。为了限制访问,守护进程检查发起请求的进程的权利。

代码签名

这个名字说明了一切。你不能执行任何你想要的。 AppStore 应用程序必须使用 Apple 证书进行签名。所有系统应用程序都经过签名,它们的哈希值存储在内核中,因此您无法以任何方式更改它们。

代码签名当然意味着当 iOS 被要求执行某些东西时,它会在执行任何代码之前检查二进制代码签名。但是 iOS 使用了另一个特性——所有代码页也都经过签名,并且在运行时检查它们的签名。当出现缺页中断时,内核会检查代码签名。

越狱会关闭几乎所有的代码签名检查。不检查非 AppStore 应用程序进程。可以通过 Cydia 的 AppSync 调整关闭 AppStore 应用程序的检查。

有人可能会问,Safari 是如何工作的。它的 JavaScript 引擎在运行时生成代码。 Safari 签署了非常特殊的权利 dynamic-codesigning允许你做这样的事情。

UNIX 权限

当然有。越狱不会以任何方式关闭或更改它。 iOS中有很多用户。它们用于各种系统进程,通过限制对进程实际需要的内容的访问来使 iOS 更加安全。因此,当在这样的过程中发现漏洞时,黑客无法做任何想做的事情。

关于iOS 用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24056543/

相关文章:

ios - 如何从我的 ios 应用程序向 whatsapp 发送图像或文本?

ios - (以编程方式/自动)删除 iOS 应用程序

ios - 即使应用程序在后台运行,如何在越狱 ios 设备上收听所有触摸事件

iphone - 如何将 CoreImage 过滤器应用于 View ?

ios - 如何调整物镜C中具有透明部分的图像的大小

iphone - 刷新引用 ManagedObjectContext

iphone - 如何用 nsarray 初始化 nsmutablearray

ios - Xamarin iOS 和 .Net Standard 2.0 依赖服务

iphone - 如何检测 aurioTouch 项目中最低和最高频率的值

ios - 如何检测 iOS 应用程序是否正在越狱手机上运行?