一键导入
rev-apk
Reverse an APK comprehensively with artifact-rich static analysis first, then minimal dynamic validation only when static evidence requires it.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Reverse an APK comprehensively with artifact-rich static analysis first, then minimal dynamic validation only when static evidence requires it.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Enforce artifact-contract, presence, dependency, freshness, and cross-reference correctness for the artifact graph.
Reuse prior work only when hashes, dependencies, and artifact semantics still support it.
Normalize remote configuration and connection hints into machine-readable, ambiguity-aware remote artifacts.
Run a bounded, evidence-heavy cribdrag workflow for suspected keystream reuse and XOR-style leakage.
Drive decode-first problems through explicit candidate generation, convergence tests, and branch stop conditions.
Map mixed decode-plus-crypto chains into explicit stages, transitions, and evidence-backed branch routes.
| name | rev_apk |
| description | Reverse an APK comprehensively with artifact-rich static analysis first, then minimal dynamic validation only when static evidence requires it. |
| metadata | {"short-description":"Artifact-heavy APK reversing with strict validation gates"} |
Produce an evidence-backed understanding of an APK’s behavior, protections, entrypoints, data flows, and extracted outputs. This skill must leave a dense artifact trail so a human can inspect what was discovered at each stage. Static analysis is the default. Dynamic steps are allowed only when static evidence shows they are necessary to confirm behavior, bypass a blocker, or recover a static corpus.
This skill does not replace the manager. It enriches the manager’s corpus and findings, then returns control to the manager with explicit next targets.
base.apk)Create and maintain:
artifacts/apk/
apk_metadata.json
manifest_summary.json
component_map.json
permissions_summary.json
resource_inventory.txt
jadx_index.txt
apktool_index.txt
hardening_findings.json
dynamic_plan.md
runtime_observations.json
extracted_outputs.json
next_targets.json
validation.json
WRITEUP.md
logs/
snippets/
extracts/
scripts/
At minimum, this skill must produce or update:
artifacts/metadata.jsonartifacts/decompile/apktool/artifacts/decompile/jadx/artifacts/signals.jsonartifacts/WRITEUP.mdartifacts/apk/apk_metadata.jsonartifacts/apk/manifest_summary.jsonartifacts/apk/component_map.jsonartifacts/apk/permissions_summary.jsonartifacts/apk/hardening_findings.jsonartifacts/apk/next_targets.jsonartifacts/apk/validation.jsonWhen applicable, also produce:
artifacts/apk/runtime_observations.jsonartifacts/apk/extracted_outputs.jsonartifacts/apk/extracts/artifacts/apk/scripts/artifacts/apk/snippets/rev_apk_hardening, then return here and continue.rev_custom_vm, then merge the resulting artifacts back into APK-specific findings.Collect:
aapt dump badging or equivalentRequired artifacts:
artifacts/metadata.json updateartifacts/apk/apk_metadata.jsonartifacts/apk/permissions_summary.jsonartifacts/investigation_log.md updateartifacts/apk/validation.json phase updateGate:
Use the standard absolute-path pattern so tool behavior is reproducible:
{"command":["bash","-lc","APK=\"$(pwd)/base.apk\"; OUT=\"$(pwd)/artifacts/decompile\"; mkdir -p \"$OUT/apktool\" \"$OUT/jadx\" \"$(pwd)/artifacts/logs\" \"$(pwd)/artifacts/apk/logs\" \"$(pwd)/artifacts/apktool-framework\"; apktool d -f -p \"$(pwd)/artifacts/apktool-framework\" -o \"$OUT/apktool\" \"$APK\" >\"$(pwd)/artifacts/logs/apktool.out\" 2>\"$(pwd)/artifacts/logs/apktool.err\" || true; jadx --show-bad-code -d \"$OUT/jadx\" \"$APK\" >\"$(pwd)/artifacts/logs/jadx.out\" 2>\"$(pwd)/artifacts/logs/jadx.err\" || true"]}
Then materialize a lightweight corpus map:
Required artifacts:
artifacts/decompile/apktool/artifacts/decompile/jadx/artifacts/logs/apktool.outartifacts/logs/apktool.errartifacts/logs/jadx.outartifacts/logs/jadx.errartifacts/apk/apktool_index.txtartifacts/apk/jadx_index.txtartifacts/apk/resource_inventory.txtartifacts/apk/validation.json updateGate:
From the corpus, identify and record:
Required artifacts:
artifacts/apk/manifest_summary.jsonartifacts/apk/component_map.jsonartifacts/apk/snippets/entrypoints.txtartifacts/apk/next_targets.json initial populationartifacts/findings.json updates with APK pointersartifacts/apk/validation.json updateGate:
Inspect and record:
res/rawRequired artifacts:
artifacts/apk/resource_inventory.txtartifacts/apk/snippets/config_locations.txtartifacts/apk/snippets/native_inventory.txtartifacts/apk/extracts/ when directly copied outartifacts/apk/validation.json updateGate:
Look for and record pointers for:
If evidence indicates packing, encrypted dex, custom loaders, or runtime corpus reconstruction, invoke rev_apk_hardening.
Required artifacts:
artifacts/apk/hardening_findings.jsonartifacts/apk/snippets/hardening_evidence.txtartifacts/apk/next_targets.json updateartifacts/apk/validation.json updateGate:
Trace only the code paths that matter most first:
For each focused class or method, reduce it into a compact structured note.
Required artifacts:
artifacts/apk/snippets/ for focused methodsartifacts/findings.json updatesartifacts/signals.json updates for promoted signalsartifacts/hypothesis_tracker.json updatesartifacts/apk/next_targets.json reprioritizedGate:
Only after static evidence says it is required, define the smallest dynamic plan needed to:
The plan must name:
Required artifacts:
artifacts/apk/dynamic_plan.mdartifacts/apk/next_targets.json updateartifacts/apk/validation.json updateGate:
Prefer the smallest reliable bypass:
Do not treat a bypass as successful unless behavior changes in an observable way.
Required artifacts:
artifacts/apk/scripts/artifacts/apk/logs/artifacts/apk/runtime_observations.json updateartifacts/apk/validation.json updateGate:
Observe only what is necessary:
Required artifacts:
artifacts/apk/runtime_observations.jsonartifacts/apk/logs/artifacts/apk/extracts/ when applicableartifacts/apk/validation.json updateGate:
If a custom dispatcher or opcode VM appears, invoke rev_custom_vm.
If shellcode-like staged payloads appear in native or extracted blobs, invoke rev_shellcode.
Required artifacts:
artifacts/apk/next_targets.jsonartifacts/decisions.jsonGate:
Extract any verified artifacts of interest, such as:
Hash every extracted artifact and make the extraction reproducible.
Required artifacts:
artifacts/apk/extracted_outputs.jsonartifacts/apk/extracts/artifacts/apk/scripts/ if usedartifacts/apk/WRITEUP.mdartifacts/WRITEUP.md updateartifacts/apk/validation.json final updateGate:
Where bounded operations are necessary, use larger but still safe ceilings to reduce premature truncation:
PASS only if:
Run shell commands:
{"command":["bash","-lc","<command>"]}