JADX Tutorial Demonstrates Recovering Credentials from an Insecure Android App
· 9:51 · Watch on YouTube ↗
Summary
The tutorial uses ADB shell access and JADX to inspect a deliberately insecure Android banking app, showing how a Base64-encoded username and AES-CBC-encrypted password can be recovered from app preferences when the key and IV are exposed.
Key points
- The demonstration connects to an Android device over Wi-Fi with ADB and opens a root shell.
- The presenter locates the demo app’s stored login values in its shared preferences.
- JADX is used to decompile the APK and inspect its login and cryptography code.
- The username is Base64-encoded, while the password uses AES-256-CBC with a key in the app and an all-zero initialization vector.
- Using the values found in the app and its code, the presenter recovers the demo credentials and logs into the app.
Article Details
- Topics
- [00:31] Connecting to the Android device over Wi-Fi with ADB and opening a root shell
- [01:48] Locating stored login credentials in the app’s shared preferences
- [02:51] Extracting the demo APK and decompiling it with JADX
- [05:12] Tracing the app’s login and cryptography logic in the decompiled source
- [06:39] Inspecting the embedded AES key, zero IV, and AES-CBC implementation
- [08:09] Decoding the username and decrypting the password to access the demo account
