飞豹客 · 课能看,资料也能带走
飞豹客体系课

安卓逆向之NDK开发

这门课解决什么问题 安卓逆向分析中,越来越多的核心逻辑被搬到了 native 层,也就是编译后的 so 文件里。如果你只会看 Java 层的 smali 代码,遇到 so 里的关键算法往往只能卡住。这门课解决的就是这个断层:它不教你怎么用现成工具一键脱壳,而是带你从零写一个 NDK 工程,理解 Ja

单课价¥14.00新品 上架
会员价¥7.00开通会员,全站课程按会员价下载套餐详情
81 人关注 更新于 2026-09-19 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

购买本课销量 0 · 永久有效
会员价 · 单课标价 ¥14.00

会员 · 按档位

永久¥7.005折
年¥8.406折
月¥9.807折

游客按标价购买,不享受上表折扣。

支付成功后自动发放网盘链接,链接失效可找客服免费补

正版保障 极速发货 售后无忧

这门课解决什么问题

安卓逆向分析中,越来越多的核心逻辑被搬到了 native 层,也就是编译后的 so 文件里。如果你只会看 Java 层的 smali 代码,遇到 so 里的关键算法往往只能卡住。这门课解决的就是这个断层:它不教你怎么用现成工具一键脱壳,而是带你从零写一个 NDK 工程,理解 Java 和 native 怎么交互、参数怎么传、多线程怎么跑。换句话说,它是逆向的前置课,让你先会正向写,再谈反向读。适合做过 Java 开发、能看懂基本安卓结构,但没碰过 C++ 和 JNI 的人。如果你连 Java 都没写过,建议先补基础再来看。

建议先看哪几块,资料怎么配合练习

资料按顺序排得比较清楚,建议不要跳着看。先看前五节,重点放在 NDK 工程和纯 Java 工程的区别上,理解为什么有些逻辑非要下沉到 native 层。Log 输出那节看着简单,但实际写的时候经常因为没正确打印日志而调试半天,建议照着敲一遍。多线程那几节是难点,传参和取返回值涉及 JNI 的引用机制,光看视频容易晕,最好自己建一个工程,照着视频里的代码一行行写,跑通了再改参数试错。JNI_OnLoad 和 JavaVM 这两节偏底层机制,看完后试着在自己的 so 里写一个 OnLoad 函数,手动注册几个 native 方法,验证是否真的理解了调用链路。

学完能独立做什么

学完之后,你应该能独立建一个完整的 NDK 工程,把一段 C++ 逻辑封装成 Java 可调用的接口,处理好多线程下的参数传递和返回值。这意味着你具备了正向开发 native 层的能力,再看别人 so 文件里的 JNI 函数注册、线程逻辑时,至少能看懂结构,知道哪里是入口、哪里是业务逻辑、哪里是反调试。往远了说,这是继续学 IDA 分析 so 文件、做协议还原和算法提取的必要基础。如果学完连一个带多线程的 so 都写不出来,说明没练够,回头把视频里的代码再敲两遍。


你将学习到安卓逆向中的NDK开发

课程目录

*   01 安卓逆向之NDK开发/

  *   01 01.NDK介绍.mp4 (91.39 MB), 18:10

  *   02 02.NDK工程与纯Java工程的区别.mp4 (46.27 MB), 08:42

  *   03 03.第一个NDK工程.mp4 (106.38 MB), 20:42

  *   04 04.so中常用的Log输出.mp4 (47.85 MB), 09:19

  *   05 05.NDK多线程初探.mp4 (53.90 MB), 09:32

  *   06 06.NDK多线程传参.mp4 (46.37 MB), 08:28

  *   07 07.NDK多线程取返回值.mp4 (46.16 MB), 08:33

  *   08 08.JNI_OnLoad.mp4 (73.38 MB), 13:07

  *   09 09.JavaVM.mp4 (65.09 MB), 12:12

  *   10 10.JNIEnv.mp4 (60.06 MB), 11:23

  *   11 11.so相关的几个概念.mp4 (34.17 MB), 06:38

  *   12 12.so函数注册.mp4 (140.03 MB), 24:26

  *   13 13.异常处理.mp4 (41.22 MB), 07:44

  *   14 14.多个cpp文件编译成一个so.mp4 (31.34 MB), 05:43

  *   15 15.编译多个so.mp4 (20.59 MB), 03:40

  *   16 16.so路径的动态获取.mp4 (43.84 MB), 07:49

  *   17 17.so之间相互调用.mp4 (91.55 MB), 16:23

  *   18 18.通过jni创建Java对象1.mp4 (58.92 MB), 11:18

  *   19 19.通过jni创建Java对象2.mp4 (33.07 MB), 06:07

  *   20 20.通过jni访问Java属性.mp4 (79.75 MB), 14:30

  *   21 21.通过jni访问Java数组1.mp4 (66.58 MB), 12:14

  *   22 22.通过jni访问Java数组2.mp4 (65.85 MB), 11:36

  *   23 23.通过jni访问Java方法1.mp4 (65.90 MB), 11:59

  *   24 24.通过jni访问Java方法2.mp4 (37.47 MB), 07:07

  *   25 25.通过jni访问Java方法3.mp4 (94.70 MB), 16:30

  *   26 26.通过jni访问Java父类方法.mp4 (64.62 MB), 11:26

  *   27 27.内存管理(局部引用).mp4 (88.58 MB), 15:53

  *   28 28.内存管理(全局引用).mp4 (21.75 MB), 04:01

  *   29 29.子线程中获取Java类1.mp4 (30.75 MB), 05:41

  *   30 30.子线程中获取Java类2.mp4 (115.26 MB), 20:08

  *   31 31.init与initarray.mp4 (85.28 MB), 15:03

  *   32 32.onCreateNative化.mp4 (130.36 MB), 22:58