Status: Stable
Version: 1.0.0
Author: community
Tags: mobile, android, apk, static-analysis, secrets, recon
Summary
Run a complete static analysis of an Android APK file using Linux command-line tools — no emulator, no device, no dynamic instrumentation required.- Phase 0 decompiles the APK twice: with
apktoolfor smali, decoded resources, and AndroidManifest.xml, and withjadxfor readable Java/Kotlin source — giving the agent full visibility at both bytecode and source level - Phase 1 collects baseline APK info: package name, version, SDK targets, DEX count, native libraries, and signing certificate details
- Phase 2 audits the AndroidManifest.xml for dangerous flags (
debuggable,allowBackup,usesCleartextTraffic), exported components without permissions, dangerous permission declarations, deep link schemes, and the network security config - Phase 3 runs a 10-section secret sweep across source and resources using ripgrep patterns covering AWS, GCP, Firebase, Stripe, Twilio, GitHub, Slack, Discord, generic credentials, PEM keys, database connection strings, and native library strings
- Phase 4 maps the full network surface: HTTP/HTTPS URLs, WebSocket endpoints, internal IP addresses, GraphQL endpoints, deep link schemes, and Retrofit/OkHttp base URLs — grouped by production, staging, third-party, and internal
- Phase 5 fingerprints the tech stack: cross-platform frameworks (Flutter, React Native, Xamarin, Cordova), networking (OkHttp, Retrofit, Volley, Ktor), auth (Firebase, Auth0, Okta, Cognito), storage (Room, Realm, SQLite), analytics and crash reporting, and payment SDKs
- Phase 6 detects vulnerability patterns across WebView misconfigurations, weak cryptography, insecure data storage, SSL/TLS bypass, intent security issues, tapjacking, and debug artifacts — every finding tagged to OWASP MASVS v2 and OWASP Mobile Top 10 (2024)
- Phase 7 produces a structured Markdown report with a risk summary table, per-finding evidence and remediation, endpoint inventory, stack table, and top 3 prioritized actions
SKILL.md file
Discover skill details
Discover skill details
Droid Recon
Full static analysis of an Android APK using Linux tools. Decompile, scan, fingerprint, and report — in one structured pass.What Does It Check?
In scope:AndroidManifest.xml— exported components, dangerous flags, permissions, network security config- Hardcoded secrets — API keys, cloud credentials, private keys, OAuth tokens, database strings, webhook URLs
- Network surface — all HTTP/HTTPS/WebSocket endpoints, internal IPs, deep link schemes, GraphQL
- Tech stack — frameworks, networking libs, auth providers, storage engines, analytics, payment SDKs
- Vulnerability patterns — WebView RCE, weak crypto (MD5/SHA1/AES-ECB), SSL bypass, insecure storage, logging PII, dynamic code loading, tapjacking
- Native libraries —
stringsextraction from.sofiles for embedded secrets or protocol references
- Dynamic analysis, runtime hooking, or emulator-based testing — use dedicated mobile dynamic analysis tooling for those
- Network traffic interception — static analysis only
How It Works
Phase 0: DecompileTwo decompilers run in sequence to maximize coverage:android:permission. Exported without permission = reachable by any app on the device.Phase 3: Secret HuntingSearches run against both jadx_out/ and apktool_out/ using the full pattern list in references/secret-patterns.md:.so libraries are also scanned with strings for embedded secrets and endpoint references.Phase 4: Endpoint & Network Surface MappingOutput
The skill produces a full Markdown report structured as:Example secrets table:
Known Limitations
- Heavily obfuscated APKs (ProGuard/R8 with aggressive settings) may produce incomplete Java source from jadx — smali output from apktool is always available as fallback
- Flutter APKs store most logic in a compiled binary (
libapp.so) — source-level analysis is limited; the skill extracts what it can viastrings - React Native APKs bundle logic in
index.android.bundle— the skill scans it directly but minified code reduces readability - Dynamic code loading (
DexClassLoader) means some code paths are invisible to static analysis
Benchmark Results
Tested on claude-sonnet-4-6 via Claude Code CLI. Same APK (DIVA — Damn Insecure and Vulnerable App), same model, same prompt. The only variable is whether the skill is loaded.Related skills
js-analyzer
JavaScript analysis for secrets, endpoints, sinks, and prototype pollution
finding-writer
Convert raw pentest notes into structured audit findings ready for reporting
nuclei-template-writer
Write production-ready Nuclei templates from vulnerability descriptions

