这门课在解决什么工作场景

很多做客户端开发或业务测试的人,平时写业务、跑用例都没问题,但一遇到应用被破解、协议被扒、或者需要分析第三方应用行为时,就完全无从下手。这门课针对的就是这类偏安全的逆向场景:拿到一个已经打包好的安装包,怎么把它拆开看里面的逻辑,怎么改它的启动入口,怎么在它被二次打包后重新签名,以及怎么在客户端做了防护的情况下把网络请求抓出来看。它不是教你怎么写一个新应用,而是教你怎么拆解一个现成的应用,搞清楚别人是怎么把你的客户端逻辑和接口暴露出去的。如果你平时的工作偏向纯业务功能开发,基本没碰过反编译,这块内容能帮你补上对应用安全防护和逆向分析的认知。

适合什么基础与学习顺序建议

课程默认你已经懂基本的 Java 语法和 Android 工程结构,知道 Activity、包名、签名大概是怎么回事。如果你连怎么写一个基础的 Android 页面都不清楚,直接看逆向会非常吃力。资料的组织基本是按工具操作到实战改包的顺序来的,建议先重点看反编译工具介绍那一块,把拆包、查源码、查包名和签名的流程完整跑一遍,自己动手解一个安装包并重新签名安装成功。这个基础打牢之后,再去看 smali 代码编写和添加入口壳的部分。抓包那一节虽然篇幅不长,但很实用,建议放在改包练习之后看,因为很多应用在改包重签后,原本的通信证书校验会失效,正好可以结合抓包工具观察请求是怎么断掉或被拦截的。

学完能独立做什么与资料配合方法

学完之后,你应该能独立完成一个应用的基本拆解和篡改流程:把安装包反编译出来看大致逻辑,修改它的名称、图标甚至启动入口,重新打包并签名验证是否能正常运行,同时能用抓包工具配合分析应用的通信协议。这套流程在排查接口被恶意调用、分析竞品通信协议、或者做应用安全加固前的自查时都用得上。配合资料练习时,不要只是顺着视频点一遍工具,建议自己准备一个简单的未加壳测试应用,跟着每一步实际操作:先用反编译工具拆开它,尝试改掉它的应用名和图标,重打包签名后装到设备上看效果是否生效;然后再尝试用源码查看工具去读它的业务逻辑。遇到入口壳和 smali 部分时,先照着视频抄一遍逻辑跑通,再尝试自己加一段简单的代码逻辑验证是否生效。抓包部分最好准备一台能配置代理的测试机,结合视频里的操作把普通请求和加了防护的请求都抓一遍对比,这样对应用通信安全的理解才会比较扎实。


学完本课程后可以实现对App进行逆向操作

课程目录

*   01 反编译工具的介绍和使用/

  *   01 反编译工具之Apktool的介绍和使用.mp4 (58.34 MB), 10:28

  *   02 App名称和图标的篡改.mp4 (62.09 MB), 11:02

  *   03 dex2jar和jd系列源码查看工具的介绍和使用.mp4 (65.01 MB), 11:20

  *   04 4.包名和签名.mp4 (43.24 MB), 09:04

*   02 App启动入口替换/

  *   01 编写smali代码给应用添加入口壳.mp4 (241.78 MB), 41:13

  *   02 java方式给应用添加入口壳.mp4 (172.10 MB), 29:48

*   03 Https请求抓包/

  *   01 windows平台https请求抓包.mp4 (34.29 MB), 07:11

  *   02 https请求抓包之暴力抓包法.mp4 (23.31 MB), 05:30

*   04 JNI数据分析/

  *   01 so库jni数据获取的几种方式.mp4 (26.03 MB), 07:27

  *   02 通过加壳方式获取jni数据(上).mp4 (35.64 MB), 08:11

  *   03 通过加壳方式获取jni数据(下).mp4 (23.90 MB), 04:22

  *   04 抽取so文件的方式获取jni数据.mp4 (30.08 MB), 06:36

  *   05 使用ida工具分析so库获取数据.mp4 (40.51 MB), 11:28

  *   06 使用xposed动态获取jni数据(上).mp4 (57.22 MB), 14:15

  *   07 使用xposed动态获取jni数据(下).mp4 (112.82 MB), 22:33