Unpacking the iOS Sandbox
Where
Talks
Objective by the Sea v8.0
Duration
21 min
Shows how an old sandbox decompiler was revived to read modern iOS sandbox profiles and present their rules readably.
Summary
The talk introduces the iOS sandbox, a kernel-enforced mechanism that restricts access to the file system, XPC services and system calls. Each profile is a set of rules describing what a process may or may not do. Knowing those rules early lets a researcher judge whether an exploit idea is viable before investing weeks of work in it.
The speaker started from Sand Blaster, an older open-source decompiler for sandbox profiles that stopped supporting releases after iOS 11. Extending it meant locating the profile data through the kernel's sandbox initialization routine and recovering the operation name list from the sandbox text section. The binary format had changed heavily since then, so the parser needed reworking. Small profiles compiled on purpose helped map the header, operation table and decision nodes. The raw output was also hard to read, so rules were emitted as C-style if-else functions that a regular decompiler could process. A fork of the tool also automates fetching the kernel and extracting the profile blob.
The iOS 18 changes added a new collection type, extra actions beyond allow and deny, bit mask data types, and base profiles that must be checked alongside the ones being analysed. The talk closes by presenting the fork as a work in progress and inviting others to test it and contribute.
Materials
Related talks
Talks·27 min
John McIntosh
Walks through patch diffing Apple OS updates with IPSW files, Ghidra and open-source tools, tying binary changes to CVEs.
Talks·22 min
Aleksandr Pilgun
Shows how the ACVTool coverage tool helps reverse engineer Android apps by stripping out code that never runs.
Talks·27 min
Laurie Kirk
Presents an open-source iOS decompiler that unpacks IPA resources and reconstructs Swift and Objective-C code on any platform.


