启用调用私有 API 的 iOS 权利

逆向工程 ios
2021-06-20 23:02:10

我想分析破坏了常用 GitHub 项目的 iOS 私有框架AppLister以下是有关 API 的一些信息:

Framework : MobileCoreServices.framework.
Class: LSApplicationWorkspace.
Method: allApplication.

从 iOS11 开始,除非将以下权利添加到应用程序中,否则此调用将返回空列表: com.apple.appstored.xpc.request

似乎此 API 在 iOS11 中已关闭,您需要以下权利才能允许它。

在逆向之前,我想大致了解权限验证的流程,并可能了解一些细节。

从我到目前为止所发现的情况来看,该应用程序似乎使用 XPC 进行远程守护程序执行实际验证。

但我在这个解释中仍然有一些黑洞。

1. Does the policy checker daemon also perform the method itself, or just return allow/block verdict.
2. Does the flow involve kernel verification or just user-space processes. 
3. Is there a way to bypass this flow if I can only control the local process (not the checker or course) by skipping the policy check phase and call the API directly ? 

如果我错过了什么,我很高兴在这里更多地了解这是如何工作的。

1个回答

显然,名为 AppleMobileFileIntegrity (AFMI) 的内核扩展负责执行这些权利。这是一个演示文稿,其中包含一些实施细节:

Apple Sandbox - 五年后,乔纳森·莱文 (Jonathan Levin)。