<< All versions
Skill v1.0.0
currentAutomated scan100/100guaidao2/xuanmu-redteam-agent/jadx
──Details
PublishedOctober 13, 2026 at 04:18 PM
Content Hashsha256:d34b505d8b7ea2ca...
Git SHA4d04f24fca2a
──Files
Files (1 file, 5.1 KB)
SKILL.md5.1 KBactive
SKILL.md · 167 lines · 5.1 KB
version: "1.0.0" name: jadx description: Android APK decompiler for converting DEX bytecode to readable Java source with the jadx CLI. Use for APK decompilation, app logic review, vulnerability discovery, hardcoded credential checks, API endpoint discovery, and Android reverse engineering.
Jadx CLI
Use jadx to decompile Android APK, DEX, AAR, and JAR inputs into readable Java source and decoded resources. Prefer CLI output that can be searched, scripted, and archived.
Prerequisites
jadxmust be installed and available inPATH.- Java runtime must be available.
- Output directories need write permission.
- Decompiled output can be several times larger than the input APK.
Core Commands
bash
# Standard decompilationjadx app.apk -d app-jadx# Recommended for obfuscated production appsjadx --deobf app.apk -d app-jadx# Faster code-only passjadx --no-res --deobf app.apk -d app-code# Resources-only passjadx --no-src app.apk -d app-resources# Preserve partially decompiled methods when errors occurjadx --show-bad-code app.apk -d app-jadx# Fallback mode for difficult inputsjadx --fallback --show-bad-code app.apk -d app-jadx
Output Layout
text
app-jadx/├── sources/ # Decompiled Java source│ └── com/example/app/└── resources/ # Decoded Android resources├── AndroidManifest.xml├── res/└── assets/
Start analysis from resources/AndroidManifest.xml, then inspect entry points and security-sensitive packages under sources/.
Recommended Workflow
bash
apk=app.apkout=app-jadxjadx --deobf --show-bad-code "$apk" -d "$out"# Entry points and componentsgrep -r "extends Activity\|extends AppCompatActivity\|extends Application\|extends Service\|extends BroadcastReceiver" "$out/sources/"# URLs and API declarationsgrep -rE 'https?://[^"'"'"']+' "$out/sources/" "$out/resources/"grep -r "@GET\|@POST\|@PUT\|@DELETE\|@PATCH\|baseUrl\|BASE_URL\|API_URL" "$out/sources/"# Secrets and credentialsgrep -ri "api.*key\|apikey\|secret\|password\|passwd\|token\|bearer" "$out/sources/" "$out/resources/"# Crypto, storage, WebView, TLS handlinggrep -r "Cipher.getInstance\|MessageDigest\|DES\|MD5\|SHA1\|SecureRandom" "$out/sources/"grep -r "SharedPreferences\|SQLite\|openFileOutput\|MODE_WORLD_READABLE\|MODE_WORLD_WRITABLE" "$out/sources/"grep -r "setJavaScriptEnabled.*true\|addJavascriptInterface\|WebView.*loadUrl" "$out/sources/"grep -r "TrustManager\|HostnameVerifier\|CertificatePinner\|checkServerTrusted" "$out/sources/"
Common Analysis Tasks
API Endpoint Discovery
bash
jadx --deobf app.apk -d app-jadxfind app-jadx/sources \-name '*Api*.java' -o \-name '*Service*.java' -o \-name '*Client*.java'grep -r "@GET\|@POST\|@PUT\|@DELETE\|@PATCH" app-jadx/sources/ | sort -ugrep -r "baseUrl\|BASE_URL\|API_BASE\|API_URL" app-jadx/sources/ app-jadx/resources/ | sort -u
Credential Check
bash
jadx --no-res --deobf app.apk -d app-codegrep -ri "api.*key\|apikey\|client.*secret\|secret.*key" app-code/sources/grep -ri "username.*password\|user.*pass\|password\|passwd\|pwd" app-code/sources/grep -ri "token\|jwt\|bearer\|authorization" app-code/sources/
IoT Companion App Review
bash
jadx --deobf iot.apk -d iot-jadxgrep -rE 'https?://[^"'"'"']+' iot-jadx/sources/ iot-jadx/resources/ | grep -vi "google\|android\|facebook"grep -ri "discover\|scan\|broadcast\|mdns\|udp\|mqtt\|coap\|onvif" iot-jadx/sources/grep -ri "Authorization\|apiKey\|token\|login\|authenticate" iot-jadx/sources/grep -r "CertificatePinner\|TrustManager\|HostnameVerifier" iot-jadx/sources/
Batch Processing
bash
for apk in *.apk; doname=$(basename "$apk" .apk)out="jadx-$name"jadx --no-res --deobf "$apk" -d "$out"grep -ri "api.*key\|password\|secret\|token\|baseUrl" "$out/sources/" > "findings-$name.txt" || truedone
Useful Options
--deobf: rename obfuscated classes and members where possible.--deobf-use-sourcename: use source file names as deobfuscation hints.--show-bad-code: emit partial code for methods jadx cannot cleanly decompile.--fallback: use fallback decompilation when normal output fails.--no-res: skip resources for faster source-only analysis.--no-src: decode resources without Java source output.--export-gradle: export a Gradle project layout.-j <threads>: set decompilation thread count.-Xmx<size>: set Java heap size, for example-Xmx4096m.
Troubleshooting
bash
# Obfuscated names make code hard to followjadx --deobf --deobf-use-sourcename app.apk -d app-jadx# Decompiler errors hide important logicjadx --show-bad-code --fallback app.apk -d app-jadx# Large APK is slowjadx --no-res -j 8 app.apk -d app-code# Out of memoryjadx -Xmx4096m app.apk -d app-jadx# Need build-like project structurejadx --export-gradle app.apk -d app-project
Reporting Findings
When reporting results, include:
- APK name and hash if available.
- jadx command used.
- Relevant file paths under
sources/orresources/. - Exact constants, URLs, method names, or component names found.
- Why the finding matters and what evidence supports it.