competition-android-hooking Skill
ctf-sandbox-orchestrator 的内部下游技能。针对 Android APK hooking、Frida 追踪、请求签名还原、SSL pinning 绕过、JNI 边界检查及应用信任边界分析的 CTF-sandbox 工作流。当用户要求 hook APK、检查签名逻辑、追踪 Java 或原生边界、绕过 pinning 或 root 检测、检查共享偏好或应用数据库、或重放被接受的移动请求时使用。仅在 `$ctf-sandbox-orchestrator` 已建立沙箱假设并路由至此之后使用。
安装方式:把技能目录放入 ~/.claude/skills/(Claude Code)或在 claude.ai 设置中启用;也可复制右侧安装命令一键添加。
技能指令原文(SKILL.md)
Competition Android Hooking
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.
Use this skill when the decisive path runs through an Android app's live trust boundary rather than static strings alone.
Reply in Simplified Chinese unless the user explicitly requests English.
Quick Start
- Preserve the original APK, extracted resources, and decompiled output before patching or resigning.
- Start with manifest, exported components, deeplinks, native libs, prefs, local DBs, and bundled configs.
- Decide the narrowest runtime boundary to hook: signer, crypto helper, JNI bridge, WebView bridge, or request builder.
- Correlate static evidence and dynamic traces before claiming a trust edge is understood.
- Reproduce the signed request, accepted token, or gated branch from the smallest hook set.
Workflow
1. Static Triage Before Hooks
- Map package structure, exported activities, services, receivers, providers, and deeplink handlers.
- Note SSL pinning logic, root checks, feature flags, token storage, shared prefs, SQLite tables, and protobuf or RPC boundaries.
- Identify whether the sensitive logic sits in Java, Kotlin, JNI, or a bundled WebView.
2. Hook The Narrowest Boundary
- Prefer hooking request signers, crypto helpers, keystore access, protobuf encode or decode, or JNI marshaling instead of broad UI hooks.
- Record plaintext inputs, signed strings, headers, nonces, and outputs at the boundary that actually changes trust.
- If pinning or environment checks block progress, patch or hook only enough to expose the real request path.
3. Replay The Accepted Path
- Rebuild the smallest sequence that reaches the accepted server-side branch: local state, nonce, request body, signature, and headers.
- Keep hook logs, captured request shapes, and local storage paths tied to the same account or session state.
- If the challenge becomes more about transform recovery than Android runtime, switch back to the broader crypto or mobile skill.
Read This Reference
- Load
references/android-hooking.mdfor hook targets, storage checklist, and evidence packaging.
What To Preserve
- Hook points, class names, JNI symbols, signer inputs and outputs, and header names
- Shared prefs, local DB rows, deeplinks, exported components, and token storage paths
- The smallest replayable request or branch that proves the trust boundary