apple-data 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,199 @@
1
+ ---
2
+ - url: https://github.com/alephsecurity/xnu-qemu-arm64/wiki/Build-iOS-on-QEMU
3
+ title: Run iOS on QEMU
4
+ type: article
5
+ - url: https://github.com/onethawt/idaplugins-list
6
+ title: onethawt's list of IDA plugins
7
+ type: article
8
+ - url: https://github.com/AllsafeCyberSecurity/awesome-ghidra
9
+ title: Awesome Ghirda Plugins
10
+ type: article
11
+ - url: https://blog.t8012.dev/ace-part-1/
12
+ title: USB-C Port Controller (ACE) Secrets
13
+ type: article
14
+ - url: http://ramtin-amin.fr/#tristar
15
+ title: Ramtin Amin's Tristar Reverse Engineering
16
+ type: article
17
+ - url: https://nyansatan.github.io/lightning/
18
+ title: Nyan Satin's Lightning Reverse Engineering
19
+ type: article
20
+ - url: Ramtin Amin's NVMe PCIe Reverse Engineering
21
+ title: http://ramtin-amin.fr/#nvmepcie
22
+ type: article
23
+ - url: http://ramtin-amin.fr/#nvmedma
24
+ title: Ramtin Amin's NVMe DMA Reverse Engineering
25
+ type: article
26
+ - url: https://github.com/hack-different/mootool
27
+ type: repo
28
+ name: mootool
29
+ description: FOSS Ruby Mach-O Tool (aims to replicate jtool2 feature set)
30
+ categories:
31
+ - tool
32
+ - re
33
+ - ruby
34
+ - url: https://github.com/cxnder/ktool
35
+ type: repo
36
+ name: ktool
37
+ description: FOSS Python Mach-O Tool
38
+ categories:
39
+ - tool
40
+ - re
41
+ - python
42
+ - url: https://github.com/checkra1n/toolchain
43
+ type: repo
44
+ name: checkra1n-toolchain
45
+ description: Toolchain used to compile checkra1n and pongoOS
46
+ categories:
47
+ - toolchain
48
+ - c
49
+ - url: https://github.com/alephsecurity/xnu-qemu-arm64
50
+ type: repo
51
+ name: alephsecurity/xnu-qemu-arm64
52
+ description: QEMU branch for emulating iOS / XNU on arm64
53
+ categories:
54
+ - emulation
55
+ - c
56
+ - xnu
57
+ - url: https://github.com/alephsecurity/xnu-qemu-arm64-tools
58
+ type: repo
59
+ name: alephsecurity/xnu-qemu-arm64-tools
60
+ description: Tooling to prepare an image for QEMU
61
+ categories:
62
+ - tool
63
+ - emulation
64
+ - url: https://github.com/cellebrite-srl/ida_kernelcache
65
+ type: repo
66
+ name: cellebrite-srl/ida_kernelcache
67
+ description: IDA plugin for XNU kernelcaches
68
+ categories:
69
+ - ida_plugin
70
+ - disassembly
71
+ - re
72
+ - url: https://github.com/cellebrite-srl/PacXplorer
73
+ type: repo
74
+ name: cellebrite-srl/PacExplorer
75
+ description: IDA plugin for pointer authentication
76
+ categories:
77
+ - ida_plugin
78
+ - disassembly
79
+ - re
80
+ - url: https://github.com/cellebrite-srl/FunctionInliner
81
+ type: repo
82
+ name: cellebrite-srl/FunctionInliner
83
+ description: IDA plugin for function inlining
84
+ categories:
85
+ - ida_plugin
86
+ - disassembly
87
+ - re
88
+ - url: https://github.com/0x36/ghidra_kernelcache
89
+ type: repo
90
+ name: 0x36/ghidra_kernelcache
91
+ description: Ghidra plugin for XNU kernel caches
92
+ categories:
93
+ - ghidra_plugin
94
+ - disassembly
95
+ - re
96
+ - url: https://github.com/blacktop/ipsw
97
+ type: repo
98
+ name: blacktop/ipsw
99
+ description: Swiss army knife for IPSWs
100
+ categories:
101
+ - tool
102
+ - url: https://github.com/checkra1n/pongoOS
103
+ type: repo
104
+ name: pongoOS
105
+ - url: https://github.com/t8012/demuxusb
106
+ type: repo
107
+ name: DeMuxUSB - USBMuxD disector
108
+ - url: https://github.com/libimobiledevice/usbmuxd
109
+ type: repo
110
+ name: open source usbmuxd implementation from libimobiledevice
111
+ - url: https://github.com/libimobiledevice/libimobiledevice
112
+ type: repo
113
+ name: libimobiledevice
114
+ - url: https://github.com/libimobiledevice/libirecovery
115
+ type: repo
116
+ name: libirecovery - low level iBoot / DFU handler
117
+ - url: https://github.com/libimobiledevice/idevicerestore
118
+ type: repo
119
+ name: idevicerestore - open source Apple device restore tool
120
+ - url: https://github.com/rickmark/apple_utdm
121
+ type: repo
122
+ name: UTDM - USB Target Disk Mode
123
+ - url: https://github.com/rickmark/macvdmtool
124
+ type: repo
125
+ name: MacVDMTool and Library - USB-PD Vendor Defined Messsages
126
+ - url: https://github.com/gh2o/rvi_capture
127
+ type: repo
128
+ name: Apple Remote Virtaul Interface
129
+ - url: https://github.com/osy/ThunderboltPatcher
130
+ type: repo
131
+ name: Thunderbolt Patcher by osy
132
+ - url: https://github.com/rickmark/awdd_decode
133
+ type: repo
134
+ name: Apple Wireless Diagnostics logging decode
135
+ - url: https://github.com/mikebrady/shairport-sync
136
+ type: repo
137
+ name: Shareport - AirPlay2 implementation
138
+ - url: https://github.com/rickmark/libibackup
139
+ type: repo
140
+ name: open source iOS backup library
141
+ - url: https://github.com/iineva/bom
142
+ type: repo
143
+ name: BOM - Bill of Materials by NeXT / Apple
144
+ - url: https://github.com/libimobiledevice/libplist
145
+ type: repo
146
+ name: Open source plist implementation
147
+ - url: https://github.com/josephw/titl
148
+ type: repo
149
+ name: Open Source iTunes Library Parser
150
+ - url: https://github.com/sbingner/ldid
151
+ type: repo
152
+ name: SBinger's fork of the ldid link editor
153
+ - url: https://github.com/t8012/efivalidate
154
+ type: repo
155
+ name: T1 and prior EFI firmware verification
156
+ - url: https://github.com/hekapooios/hekapooios.github.io
157
+ type: repo
158
+ name: List of all SecureROM / SEPROMs
159
+ - url: https://github.com/seemoo-lab/openwifipass
160
+ type: repo
161
+ name: Apple WiFi Password Sharing Implementation
162
+ - url: https://github.com/t8012/smcutil
163
+ type: repo
164
+ name: Create SMC binaries from update payloads
165
+ - url: https://github.com/acidanthera/VirtualSMC
166
+ type: repo
167
+ name: Virtual SMC implementation for Clover
168
+ - name: IDA - The Intellegent Disassembler
169
+ type: tool
170
+ url: https://hex-rays.com/ida-pro/
171
+ - name: VisUAL ARM Simulator
172
+ type: tool
173
+ url: https://salmanarif.bitbucket.io/visual/index.html
174
+ - name: Ghidra Disassembler
175
+ type: tool
176
+ url: https://ghidra-sre.org
177
+ open_source: true
178
+ - name: Hopper Disassembler
179
+ type: tool
180
+ url: https://www.hopperapp.com
181
+ - name: jtool2 by Levin
182
+ type: tool
183
+ url: https://www.newosxbook.com/tools/jtool.html
184
+ - name: Frida - Dynamic instrumentation toolkit for developers
185
+ url: https://frida.re/
186
+ type: tool
187
+ open_source: true
188
+ - name: libimobiledevice - open source Apple / iTunes implementation
189
+ type: tool
190
+ url: https://libimobiledevice.org
191
+ - url: https://developer.apple.com/library/content/documentation/Darwin/Conceptual/KernelProgramming
192
+ type: article
193
+ title: Apple - Kernel Programming Guide
194
+ - url: https://developer.apple.com/library/content/documentation/DeviceDrivers/Conceptual/IOKitFundamentals
195
+ type: article
196
+ title: Apple - IOKit Fundamentals
197
+ - url: https://developer.apple.com/library/content/documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html
198
+ type: article
199
+ title: Apple - Virtual Memory System
data/share/sep.yaml ADDED
@@ -0,0 +1,210 @@
1
+ ---
2
+ services:
3
+ - service: SEPD # Incorrect: fixed at ID 0, sepd is a play on launchd
4
+ fixed_endpoint: 0
5
+ xnu_name: AppleSEPControl
6
+ xnu_kext: AppleSEPManager
7
+ opcodes:
8
+ - id: 0
9
+ const: kOpCode_NOP
10
+ description: No operation
11
+ - id: 2
12
+ const: kOpCode_SET_OOL_IN_ADDR
13
+ description: set the address of a block of AP memory to be transfered to the SEP for the next request
14
+ - id: 3
15
+ const: kOpCode_SET_OOL_OUT_ADDR
16
+ description: set the address of a block of AP memory to be used to return the result of a given SEP response
17
+ - id: 4
18
+ const: kOpCode_SET_OOL_IN_SIZE
19
+ description: set the size of the memory block to be transfered to the endpoint as a parameter
20
+ - id: 5
21
+ const: kOpCode_SET_OOL_OUT_SIZE
22
+ description: set the size of the memory block allocated to the be written to as a response to a SEP request
23
+ - id: 10
24
+ const: kOpCode_TTYIN
25
+ - id: 12
26
+ const: kOpCode_Sleep
27
+ description: put the SEP into low power and wait for an external IRQ
28
+ - id: 19
29
+ name: kOpCode_Nap
30
+ description: put the SEP into low power and wake after a timeout
31
+ - id: 0x14
32
+ const: kOpCode_SECMODE_REQUEST
33
+ description: get the current effective security mode of the SEP
34
+ - id: 0x18
35
+ const: kOpCode_SELFTEST
36
+ description: perform diagnostics and internal consistancy checks on the the SEP
37
+ - id: 0x25
38
+ name: kOpCode_ERASE_INSTALL
39
+ description: Queue the system for a wipe and install of IPSW
40
+ - id: 0x26
41
+ const: kOpCode_L4_PANIC
42
+ description: Panic the L4 microkernel
43
+ - id: 0x27
44
+ const: kOpCode_SEPOSPANIC
45
+ description: Panic the SEPOS
46
+ - service: slog # Incorrect: notknown - Sep logging service
47
+ description: SEP logging service
48
+ xnu_name: AppleSEPLogger
49
+ xnu_kext: AppleSEPManager
50
+ - service: arts # Incorrect: ART storage
51
+ description: Anti-replay Token Storage
52
+ xnu_name: AppleSEPARTStorage
53
+ xnu_kext: AppleSEPManager
54
+ - service: artr # Incorrect: not known - SEP anti-replay storage
55
+ description: Anti-replay token request
56
+ xnu_name:
57
+ - service: sepS
58
+ description: SEP services endpoint
59
+ - service: sbio
60
+ description: Secure Biometic Services
61
+ - service: skgs
62
+ description: Secure Key Generation Service
63
+ - service: xarm
64
+ description: xART
65
+ - service: xars
66
+ description: xART
67
+ - service: cntl
68
+ description:
69
+ - service: sidv
70
+ description:
71
+ - service: test
72
+ description: Test Service
73
+ - service: sars
74
+ description: Secure Anti-Replay Service
75
+ - service: enti
76
+ description: Entitlement Service
77
+ - service: debg # Incorrect: not known
78
+ description: Debug
79
+ xnu_name: AppleSEPDebug
80
+ xnu_kext: AppleSEPManager
81
+ - service: sks\0
82
+ description: Secure Key Storage (AppleKeyStore)
83
+ xnu_name: AppleSEPKeyStore
84
+ xnu_kext: AppleSEPKeyStore
85
+ - service: sse\0
86
+ description: Proxy access to the SE (secure element)
87
+ xnu_kext: AppleSSE
88
+ - service: scrd
89
+ description: Secure Credential Manager (AppleCredentialStore)
90
+ xnu_kext: AppleCredentialManager
91
+ - service: lpol # Incorrect: unknown
92
+ name: boot_policy # Incorrect: not known yet
93
+ description: Manage Apple Silicon macOS boot policy
94
+ opcodes:
95
+ - id: 2
96
+ name: begin_update_policy
97
+ description: Begin a boot policy update operation
98
+ - id: 3
99
+ name: end_update_policy
100
+ - service: disc # Incorrect - not known
101
+ fixed_endpoint: 253
102
+ name: discovery # Incorrect: not 4CC
103
+ description: >-
104
+ First advertise, then expose
105
+
106
+ `id` is endpoint number
107
+ `name` is `'scrd'` or `'sks\0'` for example. (4 char code)
108
+
109
+ struct app_info
110
+ {
111
+ uint64_t physical_addr;
112
+ uint32_t virtual_base;
113
+ uint32_t size;
114
+ uint32_t entry;
115
+ uint8_t name[12];
116
+ uint8_t hash[16];
117
+ }
118
+ opcodes:
119
+ - id: 0
120
+ name: advertise
121
+ request_struct: |
122
+ // Credit: ntrung03
123
+ struct ep_advertise_data {
124
+ uint8_t id; /* param */
125
+ uint32_t name; /* data, Apple 4CC for the applet name */
126
+ };
127
+ - id: 1
128
+ name: expose
129
+ request_struct: |
130
+ // Credit: ntrung03
131
+ struct ep_expose_data {
132
+ uint8_t id; /* param */
133
+ char ool_in_min_pages;
134
+ char ool_in_max_pages;
135
+ char ool_out_min_pages;
136
+ char ool_out_max_pages;
137
+ };
138
+ - service: krnl # Incorrect: not known yet
139
+ fixed_endpoint: 254
140
+ name: L4info
141
+ opcodes:
142
+ - id: 0
143
+ name: L4_Ipc
144
+ desciption: Set up ipc between two threads
145
+ - id: 4
146
+ name: L4_ThreadSwitch
147
+ description: Yield execution to thread
148
+ - id: 8
149
+ name: L4_ThreadControl
150
+ description: Create or delete threads
151
+ privileged: true
152
+ - id: 0xC
153
+ name: L4_ExchangeRegisters
154
+ description: Exchange registers
155
+ - id: 0x10
156
+ name: L4_Schedule
157
+ description: Set thread scheduling information
158
+ - id: 0x14
159
+ name: L4_MapControl
160
+ description: Map or free virtual memory
161
+ privileged: true
162
+ - id: 0x18
163
+ name: L4_SpaceControl
164
+ description: Create a new address space
165
+ privileged: true
166
+ - id: 0x1C
167
+ name: L4_ProcessorControl
168
+ description: Sets processor attributes
169
+ - id: 0x20
170
+ name: L4_CacheControl
171
+ description: Cache flushing
172
+ - id: 0x24
173
+ name: L4_IpcControl
174
+ description: Adjust IPC access
175
+ privileged: true
176
+ - id: 0x28
177
+ name: L4_InterruptControl
178
+ description: Enable or disable an interrupt
179
+ privileged: true
180
+ - id: 0x2C
181
+ name: L4_GetTimebase
182
+ description: Gets the system time
183
+ - id: 0x30
184
+ name: L4_SetTimeout
185
+ description: Set timeout for IPC sessions
186
+ - id: 0x34
187
+ name: L4_SharedMappingControl
188
+ description: Set up a shared mapping
189
+ privileged: true
190
+ - id: 0x38
191
+ name: L4_SleepKernel
192
+ description: cause the SEP kernel to sleep until an external inturupt occurs
193
+ - id: 0x3C
194
+ name: L4_PowerControl
195
+ - id: 0x40
196
+ name: L4_KernelInterface
197
+ description: Get information about the running L4 kernel
198
+ - service: sepr # Incorrect: not known yet
199
+ fixed_endpoint: 255
200
+ name: seprom # Incorrect: not 4CC - name not important as it is always at 255
201
+ opcodes:
202
+ - id: 01
203
+ name: ping
204
+ description: request a pong from the SEP
205
+ - id: 0x0F
206
+ name: panic
207
+ description: Common to all Apps, panic
208
+ - id: 10
209
+ name: random
210
+ description: get random bytes from the SEP