//------------------------------------------------ //--- 010 Editor v10.0.1 Binary Template // // File: SandboxCollection15.bt // Authors: blacktop // Version: 1.5 // Purpose: iOS 15.x Sandbox Profile Collection // Category: Operating System // File Mask: // ID Bytes: 00 80, 00 00, 00 40 // History: // 1.5 2022-07-25 blacktop: Add support for iOS16.x and process more fields // 1.0 2021-04-17 blacktop: Initial header processing //------------------------------------------------ typedef struct { uint16 Type; uint16 OpNodeCount; uchar OpCount; uchar GlobalVarCount; uchar unknown1; uchar unknown2; uint16 ProfileCount; uint16 RegexItemCount; uint16 PolicyCount; } CollectionHeader; typedef struct { uint16 NameOffset; uint16 Version; uint16 Unknown; uint16 OpCount[header.OpCount]; } Profile; typedef uint16 offset; typedef uint64 node; LittleEndian(); CollectionHeader header; offset regexOffset[header.RegexItemCount]; offset globalsOffsets[header.GlobalVarCount]; offset policyOffsets[header.PolicyCount]; if (header.unknown1 > 0) offset entitlements[header.unknown1]; Profile profiles[header.ProfileCount]; local uint64 pos = FTell(); if (pos % 8) byte padding[8 - ((pos + 8) % 8)]; // align to 8 byte boundary node operations[header.OpNodeCount]; local uint64 baseOffset = FTell(); Printf("baseOffset: %#x\n", baseOffset);