$npx -y skills add zhaoxuya520/reverse-skill --skill competition-ios-runtimeInternal downstream skill for ctf-sandbox-orchestrator. CTF-sandbox workflow for IPA runtime analysis, Frida hooks, Objective-C or Swift method tracing, Keychain inspection, SSL pinning bypass, URL scheme handling, and iOS request-signing recovery. Use when the user asks to hook
| 1 | # Competition iOS Runtime |
| 2 | |
| 3 | Use this skill only as a downstream specialization after `$ctf-sandbox-orchestrator` is already active and has established sandbox assumptions, node ownership, and evidence priorities. If that has not happened yet, return to `$ctf-sandbox-orchestrator` first. |
| 4 | |
| 5 | Use this skill when the decisive path runs through live iOS trust boundaries rather than static strings or plist values alone. |
| 6 | |
| 7 | Reply in Simplified Chinese unless the user explicitly requests English. |
| 8 | |
| 9 | ## Quick Start |
| 10 | |
| 11 | 1. Preserve the original IPA, extracted bundle, and any decrypted or re-signed copy as separate artifacts. |
| 12 | 2. Start with `Info.plist`, entitlements, URL schemes, frameworks, Keychain usage, and local app storage before broad runtime hooks. |
| 13 | 3. Choose the narrowest runtime boundary that proves behavior: signer, trust evaluator, Keychain accessor, Objective-C or Swift method, or network request builder. |
| 14 | 4. Correlate static bundle evidence and live hook output before claiming the trust path is understood. |
| 15 | 5. Reproduce the accepted request, token, or gated branch from the smallest hook set. |
| 16 | |
| 17 | ## Workflow |
| 18 | |
| 19 | ### 1. Static iOS Triage |
| 20 | |
| 21 | - Map bundle structure, `Info.plist`, entitlements, URL schemes, universal links, embedded frameworks, and app group paths. |
| 22 | - Record likely trust boundaries: request signers, device binding, certificate checks, jailbreak checks, Keychain access, or local cache loading. |
| 23 | - Note whether sensitive logic sits in Objective-C, Swift, embedded frameworks, or a bundled web surface. |
| 24 | |
| 25 | ### 2. Hook The Runtime Boundary |
| 26 | |
| 27 | - Prefer hooking request builders, crypto helpers, trust evaluators, Keychain reads, or Objective-C selectors instead of broad UI handlers. |
| 28 | - Record plaintext inputs, headers, nonces, signed strings, and outputs at the boundary that changes server acceptance. |
| 29 | - Patch or bypass pinning or environment checks only enough to expose the real request path. |
| 30 | |
| 31 | ### 3. Replay The Accepted Path |
| 32 | |
| 33 | - Rebuild the smallest stateful sequence: local token, device identifier, request body, signature, headers, and trust checks. |
| 34 | - Keep hook logs, bundle paths, plist keys, and local storage artifacts tied to the same session or account state. |
| 35 | - If the task becomes mostly about transform recovery instead of iOS runtime, switch back to the broader crypto or mobile skill. |
| 36 | |
| 37 | ## Read This Reference |
| 38 | |
| 39 | - Load `references/ios-runtime.md` for hook targets, storage checklist, and evidence packaging. |
| 40 | |
| 41 | ## What To Preserve |
| 42 | |
| 43 | - Bundle paths, entitlements, plist keys, selectors, class names, hook points, and header names |
| 44 | - Keychain items, local DB or plist paths, URL schemes, and app-group storage locations |
| 45 | - The smallest replayable request or branch that proves the iOS trust boundary |