{
  "added_at": "2026-10-27",
  "additional_evidence_urls": [
    "https://github.com/maddiestone/AndroidAppRE/tree/17f9eeb5cb190d31cd90e9b9c7967978ea7a9d10",
    "https://github.com/maddiestone/AndroidAppRE/blob/17f9eeb5cb190d31cd90e9b9c7967978ea7a9d10/reversing_dex.md",
    "https://github.com/maddiestone/AndroidAppRE/blob/17f9eeb5cb190d31cd90e9b9c7967978ea7a9d10/reversing_native_libs.md",
    "https://github.com/maddiestone/AndroidAppRE/blob/17f9eeb5cb190d31cd90e9b9c7967978ea7a9d10/obfuscation.md",
    "https://github.com/maddiestone/AndroidAppRE/blob/17f9eeb5cb190d31cd90e9b9c7967978ea7a9d10/conclusion.md",
    "https://github.com/maddiestone/AndroidAppRE/blob/17f9eeb5cb190d31cd90e9b9c7967978ea7a9d10/README.md"
  ],
  "category": "learning",
  "description_en": "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.",
  "description_zh": "Maddie Stone 编写的免费英文工作坊，以 GitHub Pages 发布，入门讲解 Android 应用的静态逆向工程。各章涵盖应用组件与入口点、Dalvik 字节码与 smali、用 jadx 反编译 DEX、在 Ghidra 中定位并阅读 JNI 原生库，以及字符串去混淆。七个附书面解答的练习将这些方法用于分诊恶意软件样本，以及找出预装应用中的命令执行缺陷。",
  "entry_url": "https://awesomerea.org/resources/android-app-re-101/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/android-app-re-101/",
  "evidence_url": "https://github.com/maddiestone/AndroidAppRE/blob/17f9eeb5cb190d31cd90e9b9c7967978ea7a9d10/index.md",
  "group": "learn",
  "id": "android-app-re-101",
  "json_url": "https://awesomerea.org/resources/android-app-re-101/record.json",
  "kind": "learning-resource",
  "markdown_url": "https://awesomerea.org/resources/android-app-re-101/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/android-app-re-101/index.md",
  "name": "Android App Reverse Engineering 101",
  "name_zh": "Android 应用逆向工程 101",
  "record_type": "resource",
  "relationship": "learning",
  "requirements": [
    "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."
  ],
  "requirements_zh": [
    "审阅提交为 17f9eeb，即默认分支的最后一次提交（2020-04-29）；大部分页面写于 2019 年，内容已不再扩充。导言说明工作坊只讲静态分析，不涉及应用开发、恶意软件分析或漏洞挖掘本身的细节；结语推荐将 Frida 与动态分析作为后续方向。",
    "练习按作者提供的 Ubuntu 18.04 64 位虚拟机镜像设计，镜像通过 Google Drive 提供 VirtualBox 和 VMware 两种格式，预装 jadx 和 Ghidra。练习用的 APK（若干需判断是否为恶意软件的应用和两个厂商预装应用，多数练习给出其 SHA-256 摘要）只存在于该虚拟机中；仓库本身只包含 Markdown 页面和图片，没有任何 APK。",
    "原生库一章默认读者具备一定的 ARM 汇编基础，并推荐了外部教程；文中说明每个练习用的原生库都另有 x86 版本。页面最后更新于 2020 年，其截图可能与当前版本的 jadx 和 Ghidra 不一致。",
    "仓库没有许可证文件，因此正文的复用条款未作说明；页面注明 Android 机器人标志来自 Google，按 CC BY 3.0 使用。"
  ],
  "targets": [
    "app",
    "binary"
  ],
  "url": "https://www.ragingrock.com/AndroidAppRE/",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
