Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

🔥 AndroidReverse101 | 100 天精通 Android 逆向工程

  • 更新时间:2025年2月24日
  • 作者:Evil0ctal
  • GitHub 仓库:AndroidReverse101
  • 欢迎各位 Star、Fork,PR,一起交流和学习 Android 逆向!

📖 从 0 到 1,系统化学习 Android 逆向,让学习变得有趣、好玩、易上手!
💡 学习目标

  1. 新手友好,即使没有编程经验也能逐步上手。
  2. 深入底层,掌握 CPU 架构、汇编语言、ARM 指令集、Android 运行机制等知识。
  3. 实战驱动,每天一个知识点+实验,学完即能应用。
  4. 破解与安全并重,既能学习破解技巧,也能理解 Android 安全体系。

🚀 第一阶段:计算机基础 & 逆向概论(Day 1 - Day 20)

🔹 目标:理解计算机底层架构,掌握 16 进制、CPU 指令集、汇编语言、Android 运行原理。

Day主题内容
🏁 Day 1什么是逆向工程?现实世界 vs. 软件世界,逆向的应用场景
🔍 Day 2Android 逆向的历史 & 发展从早期 APK 破解到现代应用保护
⚙️ Day 3什么是 CPU 指令集?CISC vs. RISC,为什么 Android 采用 ARM
🔥 Day 4进制转换:为什么 16 进制很重要?2 进制、10 进制、16 进制转换与应用
🏗 Day 5汇编语言基础汇编和机器码的关系,寄存器的作用
🏹 Day 6x86 vs. ARM 汇编x86 指令与 ARM 指令的区别
📜 Day 7ARM 汇编指令解析MOVADDSUBLDRSTR 指令
🚀 Day 8函数调用与返回BLBXCALLRET 指令解析
🏗 Day 9Android CPU 架构解析ARMv7、ARMv8、ARM64 的区别
📦 Day 10Dalvik vs. ART 运行时Android 的 Java 虚拟机如何执行代码
🔥 Day 11Android 进程管理什么是 Zygote 进程,APP 进程的生命周期
🚀 Day 12Android 权限机制AndroidManifest.xml 里的权限如何影响应用安全?
📂 Day 13Android APP 目录结构/data/data 目录解析,APP 数据存储位置
🔍 Day 14APK 是如何加载的?Android 进程如何解析 APK
🛠 Day 15手写 ARM 汇编代码(实验)编写简单的 ARM 汇编程序,并运行
🔬 Day 16反汇编工具介绍IDA Pro、Ghidra、objdump 等工具
🏴 Day 17ELF 文件解析readelf 解析 so 文件结构
🔥 Day 18如何调试 Native 层?LLDB / GDB 调试 so 文件
🚀 Day 19Android APP 安全机制SELinux、应用沙盒、Root 检测
🛡 Day 20CTF 逆向挑战(初级)参加一个 Android 逆向 CTF 题目

🔍 第二阶段:APK 逆向基础(Day 21 - Day 50)

🔹 目标:掌握 APK 结构、DEX 反编译、Smali 语言、动态调试等核心技能。

Day主题内容
🛠 Day 21APK 文件结构解析AndroidManifest.xml、资源文件、DEX 文件
🔄 Day 22如何反编译 APK?jadxapktoolbaksmali 介绍
📜 Day 23DEX 文件结构解析ClassDefItemMethodIdItemStringIdItem
📦 Day 24Smali 语言入门Smali 代码结构、指令解析
📝 Day 25Smali 代码修改实验手动修改 smali 代码,绕过 VIP 限制
🚀 Day 26APK 重新打包 & 签名apktool 修改 APK,重新打包并签名
🔍 Day 27动态调试入门logcat 观察应用行为
🔬 Day 28使用 Frida Hook Java 方法修改 Java 方法返回值
🏹 Day 29Frida Hook 实战绕过 Root 检测
💉 Day 30逆向 JNI 和 Native 方法如何分析 libnative.so
🔥 Day 31Xposed 入门Hook Java 方法,修改应用行为
🚀 Day 32实战:破解 VIP 限制Hook isVip() 方法,解锁 App 会员功能
🔗 Day 33绕过 SSL Pinning破解 HTTPS 请求拦截,抓取 API 数据
🛡 Day 34Android 代码混淆与解混淆ProGuard、R8 的工作原理
🔍 Day 35逆向加密算法(MD5、AES、RSA)分析应用的加密逻辑
🔥 Day 36分析 WebSocket & API 请求使用 Burp Suite 进行协议分析
🚀 Day 37破解应用限制(实战)绕过 isForceUpdate() 方法
🏹 Day 38游戏破解基础Hook buyItem(),模拟游戏内购
🔬 Day 39反反调试绕过 ptrace() 保护
🏴‍☠️ Day 40Android 加固原理360 加固、腾讯加固的工作方式
🔍 Day 41解密加固 APK(初级)脱壳工具 Frida DumpDex

🚀 第三阶段:高级逆向 & CTF 挑战(Day 51 - Day 100)

🔹 目标:深入研究 Android 加固与反加固、协议分析、漏洞挖掘。

Day主题内容
🔥 Day 60深入分析 CTF 逆向挑战分析高难度 APK
🏴‍☠️ Day 70逆向挖掘 0Day 漏洞逆向真实应用,寻找安全漏洞
🏆 Day 100终极挑战:逆向一个完整 APP还原加密算法,分析协议,破解 VIP

🔥 100 天后,你将具备完整的 Android 逆向能力!
🔓 破解应用、分析安全漏洞、探索 Android 底层奥秘! 🚀


🔍 Crackme 题目

Crackme 是逆向工程中常见的挑战题目,用于练习逆向技术。

题目描述难度
Crackme 1此应用程序的某处隐藏着一个秘密字符串,请想办法提取它。⭐️
Crackme 2此应用程序内藏秘密,可能包含本机代码的痕迹。⭐️⭐️

📚 附录:学习资源 & 工具推荐

  1. 书籍推荐

    • 《Android 安全攻防实战》
    • 《Android 逆向工程》
    • 《Android Hacker's Handbook》
    • 《Android 漏洞与逆向分析》
    • 《Android 安全攻防权威指南》
  2. 工具推荐

    • 反编译工具:jadx、apktool、dex2jar
    • 动态调试工具:Frida、Xposed
    • 逆向工具:IDA Pro、Ghidra、Hopper
    • 调试器:LLDB、GDB
    • 加固工具:360 加固、腾讯加固、阿里加固
    • 逆向平台:Cuckoo、VirusTotal
    • 网络代理:Burp Suite、Charles、Fiddler、Wireshark、mitmproxy、reqable
    • 沙箱:DroidBox、AndroBugs、QARK
  3. 学习网站

  4. 社区 & 论坛

  5. CTF 竞赛

  6. 安全会议

  7. 赏金猎人平台

  8. 安全博客

📝 作者的话

🔥 Android 逆向工程是一门既有趣又具有挑战性的技能!

🚀 通过系统化学习,你将掌握逆向的核心技能,成为一名优秀的安全研究员!

📚 学无止境,持续学习,不断进步!

👨‍💻 加油!

关于 About

📖 从 0 到 1,系统化学习 Android 逆向,让学习变得有趣、好玩、易上手!
android-reverse-engineeringapktoolarm64ctfcybersecurityfridagdbghidraida-projadxobjdumpreverse-engineeringsmalixposed

语言 Languages

Python100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
2
Total Commits
峰值: 1次/周
Less
More

核心贡献者 Contributors