这门课在补什么短板?

很多人学 Android 逆向,第一步就卡在「看不懂代码」上。因为不懂 App 怎么跑起来,自然也不知道在哪里找漏洞、怎么 hook 函数、怎么分析 Binder 通信。这门课的核心价值,不是直接扔给你一套脱壳工具或加密算法,而是把「逆向分析」的前提——Android 开发基础——重新讲透。

你看到的资料清单里,有《组件的生命周期》《读写 sdcard》《认识 Handler》《认识 Binder》等章节。这些看起来是基础开发内容,但在逆向视角下,它们意味着:你必须知道一个 Activity 从启动到销毁,内存里发生了什么,才能理解为什么某些动态加载的代码能绕过检测;你必须清楚 Binder 是怎么跨进程传递数据的,才能分析 App 间通信的安全边界;你必须明白 NDK 和 JNI 的调用约定,才能处理 native 层的逆向。这门课解决的问题,正是「只会用 Frida hook,却不知道为什么 hook 这里」的能力断层。

适合人群很明确:你有 Java/Kotlin 基础,能写简单的 Android App,但对系统底层机制一知半解,或者想从「写代码」转向「分析代码」的技术学习者。如果你连 AndroidManifest.xml 的结构都不熟,建议先看开发入门课;如果你已经能熟练搭建项目,只是想快速过一遍框架,这门课会显得有点慢。但如果你希望建立扎实的逆向思维底座,它是很值得补的一课。

怎么看、怎么练?

建议的学习顺序,不要从第二章开始死磕。先确认自己是否了解四大组件的基本概念,然后重点看《认识 Binder》《使用 Binder》这两节。Binder 是 Android IPC 的核心,也是逆向分析中经常需要抓包、hook 的关键路径。结合资料包里的 code03.zip 和 code10.rar,动手跑一遍 Demo,观察进程间数据是怎么流动的,比看十遍理论都有用。

接着是《NDK 编程》和《NDK 中反射修改 java 变量》。这部分涉及 native 层与 Java 层的交互,是逆向中常见的难点。资料里的 rar 包应该包含了示例代码,你需要在 Android Studio 里编译运行,然后用 JEB 或 IDA 打开对应的 so 文件,对比源码和汇编的差异。这个过程很枯燥,但能帮你建立「Java 代码在底层长什么样」的直觉。《认识 Handler》那一节也很关键,很多 App 的逻辑分发依赖 Handler 消息队列,理解它的机制,才能分析异步任务的执行流程。

学完这套内容,你应该能独立做到以下几点:第一,看到一个新 App,能说出它的主要模块是如何通过组件和 Binder 组织起来的;第二,能手动创建一个包含 JNI 调用的简单 Demo,并理解它的调用链;第三,能用反射手段在运行时修改对象状态,这是动态插桩的基础能力。资料包的配合方式很简单:每个知识点都配有可运行的代码包,你不需要去找额外的示例,直接跟着课内的代码练即可。如果遇到环境配置问题(比如 NDK 版本不匹配),优先看课程说明,而不是盲目换版本。

最后提醒一点:这门课更新持续,说明内容还在迭代。如果你发现某个章节的 Demo 跑不通,可能是资料包版本过旧,尝试用最新版的 NDK 重新编译。逆向是一场持久战,基础打得越牢,后面学加固、反调试、虚拟化保护时,才不会觉得全是玄学。

课程介绍

1.png 2024-7-7 16:18 上传 2.png 2024-7-7 16:18 上传 ├──第二章 Android开发基础 | ├──资料 | | ├──12课-NDK编程.rar 122.30kb | | ├──13课-NDK中反射修改java变量.rar 45.75kb | | ├──4课-组件的生命周期.rar 47.42kb | | ├──5课-读写sdcard.rar 37.77kb | | ├──6课-认识Handler.rar 39.68kb | | ├──8课-认识Binder.rar 42.64kb | | ├──9课-使用Binder.rar 78.21kb | | ├──code03.zip 7.11kb | | ├──code10.rar 0.33kb | | ├──code

课程目录

1.png   2024-7-7 16:18 上传 2.png   2024-7-7 16:18 上传 ├──第二章 Android开发基础 | ├──资料 | | ├──12课-NDK编程.rar 122.30kb | | ├──13课-NDK中反射修改java变量.rar 45.75kb | | ├──4课-组件的生命周期.rar 47.42kb | | ├──5课-读写sdcard.rar 37.77kb | | ├──6课-认识Handler.rar 39.68kb | | ├──8课-认识Binder.rar 42.64kb | | ├──9课-使用Binder.rar 78.21kb | | ├──code03.zip 7.11kb | | ├──code10.rar 0.33kb | | ├──code11.rar 2.95kb | | ├──code14.rar 2.64kb | | ├──
第02章-Android开发基础-第01课-配置AndroidStudio环境.pptx 43.57kb | | ├──
第02章-Android开发基础-第02课-创建一个安卓程序.pptx 50.96kb | | ├──
第02章-Android开发基础-第03课-认识安卓四大组件.pptx 76.44kb | | └──
第02章-Android开发基础-第07课-认识Handler02.pptx 48.88kb | ├──8月考试-多种方式练习SDCard目录遍历.mp4 8.36M | ├──8月考试讲解-多种方式练习SDCard目录遍历.mp4 137.06M | ├──课时10:生成Android能动态加载的Jar包.mp4 61.69M | ├──课时11:动态加载SDCard可执行文件.mp4 51.91M | ├──课时12:NDK编程.mp4 134.85M | ├──课时13:NDK中反射修改java变量.mp4 170.71M | ├──课时14:NDK中反射获取包名.mp4 140.69M | ├──课时1:配置AndroidStudio环境.mp4 88.83M | ├──课时2:创建一个安卓程序.mp4 91.26M | ├──课时3:认识安卓四大组件.mp4 527.72M | ├──课时4:组件的生命周期.mp4 73.34M | ├──课时5:读写sdcard.mp4 166.50M | ├──课时6:认识Handler.mp4 151.78M | ├──课时7:认识Handler02.mp4 69.93M | ├──课时8:认识Binder.mp4 189.25M | └──课时9:使用Binder.mp4 176.88M ├──第六章 认识安卓常见安全风险 | ├──课时1:应用重打包风险讲解.mp4 41.66M | ├──课时2-敏感数据明文保存风险讲解.rar 43.22kb | ├──课时2:敏感数据明文保存风险讲解.mp4 51.36M | ├──课时3test62.rar 19.73M | ├──课时3:Activity组件越权风险讲解.mp4 64.02M | ├──课时4:WebView跨域访问风险讲解.mp4 99.79M | ├──课时4课件.rar 38.25M | ├──课时5code.rar 2.90kb | ├──课时5:ContentProvider目录遍历漏洞讲解.mp4 72.10M | ├──课时6code.rar 1.42kb | ├──课时6:组件拒绝服务漏洞讲解.mp4 35.99M | ├──课时7code.rar 43.22kb | ├──课时7:BroadcastReceiver导出漏洞讲解.mp4 74.34M | ├──课时8:安全审计工具Drozer安装与使用.mp4 258.29M | ├──课时9docker安装.txt 1.66kb | └──课时9:安全审计工具Mobsf安装与使用.mp4 149.10M ├──第七章 配置逆向工作环境 | ├──课件.rar 48.89M | ├──课时1:配置真机root环境.mp4 70.83M | └──课时1课件.txt 0.13kb ├──第三章 了解安卓Apk,Dex,so文件格式 | ├──资料 | | ├──课时1Android逆向助手_v2.2.rar 13.19M | | ├──课时2code.rar 1.98kb | | ├──课时3code.rar 24.60M | | ├──课时4code.rar 582.85kb | | └──课时5code.rar 23.62kb | ├──课时1:apk基本结构.mp4 167.27M | ├──课时2:Dex基本结构.mp4 152.77M | ├──课时3:代码解析Dex文件.mp4 568.38M | ├──课时4:ELF基本结构.mp4 96.31M | ├──课时5:解析ELF头.mp4 58.04M | ├──课时6:解析程序头.mp4 49.62M | ├──课时7:解析节表信息.mp4 206.70M | └──课时8:解析符号表信息.mp4 132.19M ├──第四章 了解Smali,ARM | ├──资料 | | ├──11月份作业.rar 4.78M | | ├──11月份作业讲解.rar 4.78M | | ├──code10.rar 28.91M | | ├──code11.rar 28.91M | | ├──code12.rar 28.95M | | ├──code2.rar 18.81M | | ├──code3.rar 2.50kb | | ├──code4.rar 2.50kb | | ├──code5.rar 1.09kb | | ├──code6.rar 1.09kb | | ├──code7.rar 71.52M | | ├──code8.rar 28.91M | | └──code9.rar 28.91M | ├──11月作业.mp4 12.29M | ├──11月作业讲解.mp4 111.60M | ├──课时10:Arm汇编-跳转和寻址.mp4 74.36M | ├──课时11:Arm汇编-内联汇编.mp4 84.79M | ├──课时12:修改应用ARM代码实现破解功能.mp4 161.35M | ├──课时1:了解安卓虚拟机.mp4 26.62M | ├──课时2:Smali汇编-头文件定义与接口实现.mp4 45.77M | ├──课时3:Smali汇编-变量的定义.mp4 37.75M | ├──课时4:Smali汇编-方法的定义.mp4 38.84M | ├──课时5:Smali汇编-方法的调用.mp4 85.32M | ├──课时6:Smali汇编-对象的创建.mp4 73.53M | ├──课时7:Smali汇编-修改应用Smali代码实现破解功能.mp4 96.79M | ├──课时8:Arm汇编-常见ARM汇编指令.mp4 123.13M | └──课时9:Arm汇编-常见ARM汇编指令2.mp4 47.80M ├──第五章 认识安卓系统源码AOSP | ├──看雪1W-刷自己编译好的安卓系统镜像.zip 669.56M | ├──课时1:安卓系统源码基础知识讲解.mp4 74.06M | ├──课时2:安卓系统源码编译环境配置.mp4 118.20M | ├──课时2笔记.txt 1.92kb | ├──课时3:安卓系统源码编译镜像刷机.mp4 48.73M | └──课时4:安卓系统源码修改注入so.mp4 164.69M └──第一章 Java语言基础知识入门 | ├──24课-自定义异常.rar 36.54kb | ├──25课-输入数据流与输出数据流.rar 41.38kb | ├──26课-文件数据流.rar 46.35kb | ├──27课-字符流和字节流.rar 43.64kb | ├──28课-文件的处理.rar 102.43kb | ├──30课-继承Thread类.rar 39.33kb | ├──31课-实现Runnable接口.rar 41.76kb | ├──32课-线程的启动、调度与挂起.rar 39.79kb | ├──33课-线程间的通信.rar 40.34kb | ├──35课-使用InetAddress.rar 37.76kb | ├──36课-统一资源定位器概念与URL的创建.rar 38.92kb | ├──37课-异步请求.rar 2.24M | ├──38课-socket通信基本步骤.rar 39.83kb | ├──5月考试-单线程坦克大战.mp4 111.68M | ├──5月考试讲解-单线程坦克大战编程.mp4 178.82M | ├──5月作业_单线程坦克大战.docx 13.74kb | ├──6课.rar 41.84kb | ├──code12.zip 1.40kb | ├──code13.zip 0.82kb | ├──code14.rar 0.60kb | ├──code15.rar 0.73kb | ├──code16.zip 1.43kb | ├──code17.rar 0.80kb | ├──code18.rar 0.36kb | ├──code19.rar 0.77kb | ├──code20.rar 1.76kb | ├──K007-Java语言基础-第07课-基本数据类型.rar 41.80kb | ├──K009-Java语言基础-第09课-类型转换.pptx 52.57kb | ├──K010-Java语言基础-第10课-表达式语句、块、分支语句.pptx 51.12kb | ├──K011-Java语言基础-第11课-循环语句与break、continue.pptx 54.45kb | ├──K012-Java语言基础-第12课-类的定义格式.pptx 71.12kb | ├──K013-Java语言基础-第13课-对象的创建和初始化.pptx 46.86kb | ├──K014-Java语言基础-第14课-构造方法及其重载.pptx 53.01kb | ├──K015-Java语言基础-第15课-类继承的定义.pptx 62.76kb | ├──K016-Java语言基础-第16课-多态性与转换对象.pptx 48.08kb | ├──K017-Java语言基础-第17课-理解关键字.pptx 57.09kb | ├──K018-Java语言基础-第18课-方法重写规则与包装类型.pptx 52.32kb | ├──K019-Java语言基础-第19课-接口的定义和实现.pptx 68.77kb | ├──K020-Java语言基础-第20课-内部类与匿名类.pptx 56.55kb | ├──K021-Java语言基础-第21课-数组初始化与使用.rar 46.58kb | ├──K022-Java语言基础-第22课-容器和字符串.rar 39.91kb | ├──K023-Java语言基础-第23课-公共异常.rar 99.82kb | ├──K029-Java语言基础-第29课-线程的概念和结构.pptx 56.33kb | ├──K034-Java语言基础-第34课-网络相关概念.pptx 59.29kb | ├──K04-java语言基础-第4课-面向对象的重要性.pptx 43.37kb | ├──K05-java语言基础-第5课-空白注释及语句关键字标识符.pptx 168.55kb | ├──src21.zip 2.23kb | ├──课时10code.zip 0.57kb | ├──课时10:表达式语句、块、分支语句.mp4 32.80M | ├──课时11: 循环语句与break、continue.mp4 64.38M | ├──课时12:类的定义格式.mp4 69.95M | ├──课时13:对象的创建和初始化.mp4 29.47M | ├──课时14:构造方法及其重载.mp4 43.21M | ├──课时15:类继承的定义.mp4 62.61M | ├──课时16:多态性与转换对象.mp4 40.19M | ├──课时17:理解关键字.mp4 50.63M | ├──课时18:方法重写规则与包装类型.mp4 42.19M | ├──课时19:接口的定义和实现.mp4 24.67M | ├──课时1K02-Java语言基础-第一课-配置IDEA环境.pptx 59.68kb | ├──课时1:配置IDEA环境.mp4 96.86M | ├──课时20:内部类与匿名类.mp4 82.69M | ├──课时21:数组初始化与使用.mp4 75.36M | ├──课时22:容器和字符串.mp4 105.15M | ├──课时23:公共异常.mp4 44.66M | ├──课时24:自定义异常.mp4 36.64M | ├──课时25:输入数据流与输出数据流.mp4 47.52M | ├──课时26:文件数据流.mp4 82.11M | ├──课时27:字符流和字节流.mp4 116.01M | ├──课时28:文件的处理.mp4 74.76M | ├──课时29:线程的概念和结构.mp4 40.12M | ├──课时2K03-Java语言基础-第二课-面向对象程序设计概念.pptx 46.38kb | ├──课时2:什么是面向对象程序设计.mp4 18.10M | ├──课时30:继承Thread类.mp4 61.42M | ├──课时31:实现Runnable接口.mp4 25.57M | ├──课时32:线程的启动、调度与挂起.mp4 52.64M | ├──课时33:线程间的通信.mp4 79.80M | ├──课时34:网络相关概念.mp4 15.39M | ├──课时35:使用InetAddress.mp4 82.38M | ├──课时36:统一资源定位器概念与URL的创建.mp4 119.60M | ├──课时37:异步请求.mp4 126.59M | ├──课时38:socket通信基本步骤.mp4 132.10M | ├──课时3:什么是类和对象.mp4 121.22M | ├──课时3课件.rar 36.67kb | ├──课时4:面向对象的重要性.mp4 44.91M | ├──课时5:空白注释及语句关键字标识符.mp4 55.31M | ├──课时6:变量与常量.mp4 48.79M | ├──课时7: 基本数据类型.mp4 80.74M | ├──课时8:运算符.mp4 72.45M | ├──课时8资料.rar 131.02kb | ├──课时9code.zip 0.57kb | ├──课时9:类型转换.mp4 41.27M | └──作业代码.txt 19.46kb