Star on GitHubStar1.1k stars

Learning resource

Android App Reverse Engineering 101

Maddie Stone's free English workshop introducing static reverse engineering of Android apps, published as GitHub Pages. Its chapters cover app components and entry points, Dalvik bytecode and smali, decompiling DEX with jadx, finding and reading JNI native libraries in Ghidra, and string deobfuscation. Seven exercises with written solutions apply this to triaging malware samples and spotting command-execution flaws in pre-installed apps.

Targets
App · Binary
Category
Learning resources
Relationship
Learning resource
Sources reviewed

Requirements & limits

  • Reviewed at commit 17f9eeb, the last default-branch commit (2020-04-29); most pages date from 2019 and the material is not being extended. The introduction says the workshop covers static analysis only and does not teach app development, malware analysis or vulnerability hunting themselves; the conclusion points to Frida and dynamic analysis as next steps.
  • Exercises are designed for the author's Ubuntu 18.04 64-bit VM image, offered for VirtualBox and VMware from Google Drive, with jadx and Ghidra installed. The exercise APKs (apps triaged as possible malware and two pre-installed vendor apps, each named with a SHA-256 digest in most exercises) exist only inside that VM; the repository holds Markdown pages and images and no APKs.
  • The native-library chapter assumes some ARM assembly, pointing to outside tutorials, and says every exercise library also has an x86 build. The pages were last updated in 2020, so their screenshots may not match current jadx and Ghidra releases.
  • The repository has no license file, so reuse terms for the text are not stated; the pages credit the Android robot logo to Google under CC BY 3.0.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. index.md GitHub · maddiestone/AndroidAppRE · Revision 17f9eeb
  2. https://github.com/maddiestone/AndroidAppRE/tree/17f9eeb5cb190d31cd90e9b9c7967978ea7a9d10
  3. reversing_dex.md GitHub · maddiestone/AndroidAppRE · Revision 17f9eeb
  4. reversing_native_libs.md GitHub · maddiestone/AndroidAppRE · Revision 17f9eeb
  5. obfuscation.md GitHub · maddiestone/AndroidAppRE · Revision 17f9eeb
  6. conclusion.md GitHub · maddiestone/AndroidAppRE · Revision 17f9eeb
  7. README.md GitHub · maddiestone/AndroidAppRE · Revision 17f9eeb

More in References and learning

All 83 entries in References and learning

↑↓ move↵ open⌘↵ new tab