
小肩膀 - 零基础一站式Android逆向
来自 网络整理·免费领取学习资源
7,917 领取 · 6,642 收藏更新于 2026年9月20日
这份资料来自网络整理2026年的付费VIP课,内容以视频为主,对应《小肩膀 - 零基础一站式Android逆向》。官网需要单独购买,有集上可以免费领取。
课程介绍
完全零基础,从Java和C讲起,零基础可以看。课时大概四个月左右,包含21和22版,学完之后你可以达到中级安卓逆向工程师的水平,而且不少安全、爬虫工作都要求安卓逆向
课程目录
- 零基础一站式安卓逆向2022
- 01.安卓基础
- 001.开课交流
- 002.windows环境配置
- 003.cmd与环境变量
- 004.jdk的安装
- 005.jadx的简单使用
- 006.gda的简单使用
- 007.jeb的简单使用
- 008.windows注意事项_python的安装
- 009.第01天的答疑环节
- 010.第01天的答题有奖环节
- 011.androidstudio的安装与配置
- 012.adb的工作原理与配置
- 013.真机环境配置(刷机)
- 014.真机环境配置(root)
- 015.真机环境配置(其他)
- 016.第02天的答疑环节
- 017.第02天的答题有奖环节
- 018.adb常用命令
- 019.logcat的使用
- 020.android扫盲
- 021.linux常用命令1
- 022.linux常用命令2
- 023.linux常用命令3
- 024.linux常用命令4
- 025.第03天的答疑环节
- 026.第03天的答题有奖环节
- 027.android常用目录
- 028.linux权限
- 029.androidstudio的工程目录
- 030.build.gradle与androidmanifest.xml
- 031.app执行入口
- 032.基本控件的使用(button)
- 033.第04天的答疑环节
- 034.第04天的答题有奖环节
- 035.toast的使用
- 036.基本控件的使用(textview)
- 037.通过硬编码定位字符串
- 038.基本控件的使用(edittext)
- 02.java层逆向实战
- 039.抓包工具的分类
- 040.基本抓包环境配置
- 041.抓包工具证书的配置1
- 042.抓包工具证书的配置2
- 043.常见无法解密ssl的原因
- 044.第05天的答疑环节
- 045.第05天的答题有奖环节
- 046.httpcanary的安装配置与使用
- 047.r0capture的配置与使用
- 048.为什么charles还要配合socksdroid来使用
- 049.对称加密算法和rsa的介绍
- 050.抓包原理详解
- 051.数字签名算法与数字证书
- 052.http协议(url)
- 053.http协议(协议头)
- 054.第06天的答疑环节
- 055.第06天的答题有奖环节
- 056.app界面控件的查看
- 057.通过控件定位绑定的事件代码
- 058.人肉搜索字符串定位关键代码
- 059.传统关键代码定位方法的弊端
- 060.hook可以用来做什么
- 061.fridahook环境搭建
- 062.第07天的答疑环节
- 063.第07天的答题有奖环节
- 064.webstorm_nodejs_frida代码提示配置
- 065.frida-server的配置
- 066.fridahook普通方法和重载方法
- 067.fridahook获取参数值_java.cast向下转型
- 068.frida辅助app协议逆向分析1
- 069.frida辅助app协议逆向分析2
- 070.fridahook构造函数
- 071.第08天的小结
- 072.第08天的答疑环节
- 073.第08天的答题有奖环节
- 074.frida辅助app协议逆向分析补充
- 075.算法复现1
- 076.算法复现2.mp
- 077.协议复现1
- 078.协议复现2
- 079.fiddler抓取pc应用数据包
- 080.从逆向案例中发现自身存在的问题
- 081.第09天的答题有奖环节
- 082.关键代码快速定位1
- 083.关键代码快速定位2
- 084.关键代码快速定位3
- 085.关键代码快速定位4
- 086.关键代码快速定位5
- 087.关键代码快速定位6
- 088.其他关键代码定位思路
- 089.安卓系统沙盒功能演示(打印函数调用关系)
- 090.安卓系统沙盒功能演示(打印每一行指令)
- 091.第10天的答疑环节
- 092.关键代码快速定位7
- 093.关键代码快速定位8
- 094.关键代码快速定位9
- 095.hook字符串构造函数存在的问题
- 096.系统源码中对于字符串构造函数的处理
- 097.关键代码快速定位10
- 098.关键代码快速定位11
- 099.关键代码快速定位12
- 100.关键代码快速定位13
- 101.第11天的答疑环节
- 102.第11天的答题有奖环节
- 103.静态方法和实例方法的hook
- 104.函数参数和返回值的修改
- 105.构造方法的hook
- 106.对象参数的构造与修改
- 107.hashmap的打印
- 108.重载方法的hook
- 109.hook方法的所有重载
- 110.主动调用
- 111.获取和修改类的字段
- 112.hook内部类与匿名类
- 113.jadx动态调试
- 114.第12天的小结
- 115.混淆函数的hook方法
- 116.枚举所有已加载的类
- 117.枚举类的所有方法
- 118.hook类的所有方法
- 119.java.registerclass
- 120.frida注入dex
- 121.frida写文件
- 122.java.cast.mp
- 123.第13天的答题有奖环节
- 124.数组的构造
- 125.zip
- 125.可变参数的构造
- 126.arraylist的主动调用
- 127.hook动态加载的dex
- 128.让hook只在指定函数内生效
- 129.某app实战(过vpn检测)
- 130.某app实战(去强制更新)
- 131.路漫漫其修远兮_吾将上下而求索
- 132.第14天的答题有奖环节
- 133.hook定位接口的实现类
- 134.hook定位抽象类的实现类
- 135.frida.exe的使用
- 136.frida连接多个设备8.46
- 137.脱离pc使用frida
- 138.objection的安装
- 139.objection(有手就行的hook)
- 140.objection的其他常见操作
- 141objection不常使用的操作
- 142.objection的插件(wallbreaker)
- 143.第15天的答疑环节
- 144.免root使用frida
- 145.安卓系统对应so平台的选择
- 146.免root和脱离pc使用frida
- 147.frida自吐算法演示
- 148.某app逆向实战
- 149.某app逆向实战
- 150.某app逆向实战
- 151.第16天的答疑环节
- 152.某app逆向实战
- 153.某app抓包分析
- 154.某app关键代码定位
- 155.某app算法逆向
- 156.某app非标准算法还原
- 157.java代码翻译js代码
- 158.第17天的答疑环节
- 课程说明与解压密码.txt
- 03.密码学探秘
- 159.密码学介绍
- 160.h5的app逆向
- 161.hex编码
- 162.base64编码
- 163.base64编码细节
- 164.消息摘要算法
- 165.md5算法
- 166.第18天-sha算法
- 167.算法通杀(工具函数的封装)
- 168.算法通杀(md5)
- 169.算法通杀(sha)
- 170.mac算法
- 171.算法通杀(mac)
- 172.对称加密算法
- 173.des算法-1
- 174.加密模式
- 175.填充方式
- 176.des算法-2
- 177.desede算法
- 178.第19天的答疑环节
- 179.第19天的答题有奖环节
- 180.aes算法
- 181.des算法通杀hook
- 182.desede算法通杀hook
- 183.aes算法通杀hook
- 184.非对称加密算法
- 185.rsa密钥的解析
- 186.rsa的加解密
- 187.rsa的加密模式和填充方式
- 188.rsa密钥的转换
- 189.rsa算法的通杀hook
- 190.第20天的答疑环节.mp
- 191.多种加密算法的常见结合套路
- 192.数字签名算法
- 193.数字签名算法的通杀hook
- 194.cryptojs(消息摘要算法)
- 195.cryptojs(消息摘要算法的其他调用形式)
- 196.cryptojs(字符串解析)
- 197.cryptojs(对称加密算法-1)
- 198.cryptojs(对称加密算法-2)
- 199.第21天答疑环节
- 200.闲聊
- 201.cryotojs(其他算法)
- 202.jsencrypt库的改写和使用
- 203.给jsencrypt库增加nopadding填
- 204.js数字签名库的使用
- 205.某app逆向实战(so入门)
- 04.ndk开发
- 206.so入门
- 207.ndk介绍
- 208.第22天的答疑环节
- 209.ndk与java工程的区别
- 210.第一个ndk工程
- 211.so中常用的log输出
- 212.ndk多线程简介
- 213.jni_onload
- 214.javavm
- 215.jnienv
- 216.so相关的几个概念
- 217.第23天的小结
- 218.之前的内容小结
- 219.so函数注册
- 220.多个cpp文件编译成一个so
- 221.编译多个so
- 222.so路径的动态获取
- 223.so之间的相互调用1
- 224.so之间的相互调用2
- 225.第24天的小结
- 226.通过jni创建java对象
- 227.通过jni访问java属性
- 228.通过jni访问java数组
- 229.通过jni访问java方法1
- 230.callobjectmethoda的使用
- 231.通过jni访问java方法2
- 232.实战分析某so中的jni相关调用
- 233.第25天的答疑环节
- 234.通过jni访问java父类方法
- 235.内存管理(局部引用)
- 236.内存管理(全局引用)
- 237.子线程中获取java类1
- 238.子线程中获取java类2
- 239.init与initarray
- 240.oncreatenative化
- 课程说明与解压密码.txt
- 05.密码学进阶
- 01.学前须知
- 02.c实现的md5算法的使用
- 03.md5算法细节(明文的处理)
- 04.字节序
- 05.md5算法细节(m1-m16)
- 06.md5算法细节(初始化常量)
- 07.md5算法细节(md5transform)
- 08.md5代码实现详解(明文的处理)
- 09.md5代码实现详解(结果的计算)
- 10.md5代码实现详解(md5transform)
- 11.ida的基本使用
- 12.ida中的md5(ida中的数值转换)
- 13.ida中的md5(ida中的数据类型)
- 14.ida中的md5(md5算法的识别)
- 15.ida的常用操作
- 16.ida算法识别插件
- 17.ida算法识别插件(findhash)
- 18.so层自吐算法
- 19.ida插件(trace_natives)
- 20.so层自吐算法升级版
- 21.sha1算法细节
- 22.sha1代码实现详解
- 23.哈希算法的识别
- 24.hmacmd5算法介绍
- 25.hmacmd5算法细节
- 26.hmacmd5算法实现详解
- 27.des算法细节(子密钥生成)
- 28.des算法细节(明文的运算)
- 29.des的实现源码分析1
- 30.des的实现源码分析2
- 31.des的魔改
- 32.分组加密的填充
- 33.分组加密的模式(ecb)
- 34.分组加密的模式(cbc)
- 35.分组加密的模式(其他)
- 36.3des算法细节
- 37.aes特点
- 38.aes算法细节(明文的运算1)
- 39.aes算法细节(明文的运算2)
- 40.aes算法细节(密钥的编排)
- 41.aes的代码实现
- 42.aes查表法详解
- 43.openssl的aes实现
- 44.openssl的evp使用
- 45.aes和des的区别与联系
- 06.so层逆向实战
- 01.实战(so逆向分析)
- 02.枚举各种
- 03.实战(sohook导出函数)
- 04.模块基址的几种获取方式
- 05.函数地址的计算
- 06.hook任意函数
- 07.有手就行的sohook
- 08.实战(某app的so逆向)
- 09.实战(某app的so逆向)
- 10.实战(某app的so逆向)
- 11.实战(某app的so逆向)
- 12.实战(某app的so逆向)
- 13.实战(某app的so逆向)
- 14.实战(hook过root检测)
- 15.实战(某app的so逆向)
- 16.实战(二级指针的处理)
- 17.实战(jnitrace)
- 18.ollvm字符串解密
- 19.sodump
- 20.so修复
- 21.修改函数数值参数和返回值
- 22.修改函数字符串参数
- 23.frida操作c语言结构体
- 24.frida构建字符串以及需要注意的细节
- 25.获取指针参数返回值
- 26.hook_dlopen
- 27.内存读写
- 28.arm汇编介绍
- 29.frida修改so函数代码
- 30.memory.patchcode
- 31.so层主动调用任意函数
- 32.hooklibc读写文件
- 33.jni函数的hook1
- 34.jni函数的hook2
- 35.主动调用jni函数
- 36.so层打印函数栈
- 37.二级指针的构造
- 38.如何确认native函数在哪个so
- 39.快速定位jni静态注册函数
- 40.快速定位jni动态注册函数
- 41.inlinehook
- 42.源码分析(art下的system.loadlibrary)1
- 43.源码分析(art下的system.loadlibrary)2
- 44.hook_initarray
- 45.hook_jnionload
- 46.hook_pthread_create
- 47.打印so层函数栈和debugsymbol
- 48.替换函数
- 49.hexdump
- 50.frida-trace
- 51.内存读写监控
- 52.常见frida检测方法1
- 53.常见frida检测方法2
- 54.frida检测补充
- 55.实战(某app的so逆向)
- 56.实战(某app的so逆向)
- 57.frida-gadget持久化介绍
- 58.androidstudio导入aosp源码
- 59.配置开机时创建自定义目录
- 60.创建文件类型selinux标签
- 61.为自定义目录关联文件类型标签
- 62.配置system_app访问标签文件的权限
- 63.配置untrusted_app访问标签文件的权限
- 64.frida-gadget集成到系统
- 65.系统源码的修改1
- 66.系统源码的修改2
- 67.系统源码的修改3
- 68.魔改系统的编译
- 69.魔改系统的刷机
- 70.frida-gadget管理app的开发
- 71.frida-gadget持久化成品
- 07.算法转发与unidbg
- 01.frida的python库使用(包名附加)
- 02.frida的python库使用(pid附加)
- 03.frida的python库使用(spawn方式启动)
- 04.frida的python库使用(连接非标准端口和多个设备)
- 05.frida与python的交互(send)
- 06.frida与python的交互(recv)
- 07.frida的rpc远程调用
- 08.frida算法转发1
- 09.frida算法转发2
- 10.frida算法转发3
- 11外网服务部署
- 12.fiddler数据转发
- 13.补充
- 14.unidbg介绍
- 15.unidbg入门案例
- 16.unidbg(通过符号寻找函数地址的过程)
- 17.unidbg(对传入的参数进行包装的过程)
- 18.unidbg入门案例
- 19.unidbg入门案例
- 20.处理so调用系统java类
- 21.处理so调用其他so
- 22.unidbg入门案例
- 23.通过符号调用函数1
- 24.通过符号调用函数2
- 25.通过偏移调用函数
- 26.unidbg中的hook
- 27.hookzz.wrap
- 28.hookzz.instrument
- 29.参数的获取
- 30.hookzz.replace
- 31.原生unicornhook
- 32.打印调用栈
- 33.unidbg中的动态调试
- 34.监控内存读写
- 35.unidbgtrace1
- 36.unidbgtrace2
- 37.处理so调用自写java类1
- 38.处理so调用自写java类2
- 39.处理so调用自写java类3
- 40.unidbg实际案例
- 41.unidbg实际案例
- 42.unibdg实际案例
- 43.unibdg实际案例
- 44.unidbg实际案例
- 45.unidbg中的virtualmodule
- 46.处理so与系统的交互(文件访问)
- 47.处理so与系统的交互(rootfs虚拟文件系统)
- 48.处理so与系统的交互(环境变量)
- 49.处理so与系统的交互(hooklistener)
- 50.处理so与系统的交互
- 51.linux内核的syscall
- 08.抓包检测与hook抓包
- 01.抓包复习
- 02.常见的抓包检测
- 03.vpn检测1
- 04.vpn检测2
- 05.vpn检测3
- 06.httpsurlconnection的get和post请求
- 07.httpsurlconnection的自吐
- 08.httpsurlconnection的证书检测
- 09.httpsurlconnection证书检测的绕过
- 10.okhttp3的get和post请求
- 11.okhttp3的拦截器
- 12.okhttp3的自吐及快速定位
- 13.okhttp3的证书检测
- 14.okhttp3的certificatepinner
- 15.okhttp3证书检测的绕过1
- 16.okhttp3证书检测的绕过2
- 17.okhttp3混淆后的定位方法
- 18.okhttp3源码分析
- 19.java层ssl系统源码分析与自吐
- 20.jni层ssl系统源码分析
- 21.jni层ssl自吐1
- 22.jni层ssl自吐2
- 23.r0capture的使用
- 24.某app抓包实战
- 25.某app关键代码定位
- 26.某app抓包实战(证书dump与双向验证)
- 27.某app抓包实战(服务端校验客户端)
- 课程说明与解压密码.txt
- 09.脱壳
- 01.linux介绍
- 02.vmware的安装
- 03.ubuntu系统的安装
- 04.虚拟机快照
- 05.ubuntu系统的配置
- 06.vmware的三种网络连接
- 07.安卓系统编译(下载初始化包)
- 08.安卓系统编译(同步指定版本源码)
- 09.关于安卓源码下载的补充
- 10.安卓系统编译(获取手机驱动)
- 11.安卓系统编译(源码编译)
- 12.刷机前置知识
- 13.刷机详解
- 14.加固与脱壳介绍
- 15.整体加固介绍
- 16.art下的脱壳点
- 17.inmemorydexclassloader源码分析1
- 18.inmemorydexclassloader源码分析2(mcookie脱壳原理)
- 19.inmemorydexclassloader源码分析3(opendexfilesfromoat)
- 20.dexclassloader源码分析1
- 21.dexclassloader源码分析2
- 22.youpk脱壳原理
- 23.其他脱壳方法原理
- 24.osp源码导入到clion
- 25.fart源码分析
- 26.fart移植到安卓10-1
- 27.fart移植到安卓10-2
- 28.整体加固脱壳成品测试
- 29.抽取加固介绍
- 30.类加载器
- 31.双亲委派机制
- 32.加固对类加载器的影响
- 33.fart源码分析(遍历所有classloader)
- 34.fart源码分析(遍历所有的类)
- 35.fart源码分析(遍历类中的所有函数)
- 36.类的加载和初始化流程
- 37.方法调用流程
- 38.fart源码分析(codeitem的保存)
- 39.fart移植到安卓10-3
- 40.fart移植到安卓10-4
- 41.fart移植到安卓10-5
- 42.抽取加固脱壳成品测试
- 43.dex重构
- 44.fart改进方案
- 45.frida增强fart脱壳功能
- 46.其他加固形式
- 资料.zip
- 零基础一站式安卓逆向2021
- 01.第一部分java语言详解
- 001.课程介绍
- 002什么是安卓app逆向
- 003.windows(注意事项)
- 004.windows(cmd)
- 005.windows(环境变量)
- 006.windows(terminal)
- 007.java(jdk的安装与配置)
- 008.java(java语言特点)
- 009.java(第1个程序)
- 010.java(语言的基础组成)
- 011.java(注释)
- 012.java(常用编码)
- 013.java(cmd设置默认编码utf-8)
- 014.java(idea的安装)
- 015.java(转义字符)
- 016.java(变量)
- 017.java(数据类型)
- 018.java(整数类型)
- 019.java(浮点类型)
- 020.java(字符型)
- 021.java(布尔型)
- 022.java(自动类型转换)
- 023.java(强制类型转换)
- 024.java(关键字和保留字)
- 025.java(标识符)
- 026.java(常量)
- 027.java(算术运算符1)
- 028java(算术运算符2)
- 029.java(算术运算符练习)
- 030.java(赋值运算符)
- 031.java(关系运算符)
- 032.java(逻辑运算符)
- 033.java(逻辑运算符练习)
- 034.java(三元运算符)
- 035.ava(运算符优先级)
- 036.java(进制与位运算符)
- 037.java(进制转换)
- 038.java(hex编码)
- 039.java(if语句)
- 040.java(switch语句)
- 041.java(while循环)
- 042.java(for循环)
- 043.java(break与continue)
- 044.java(数组)
- 045.java(数组遍历)
- 046.java(值传递与引用传递)
- 047.java(二维数组)
- 048.java(数组练习)
- 049.java(10进制转16进制代码实现)
- 050.java(帮助文档的查阅)
- 051.java(类和对象)
- 052.java(对象创建过程)
- 053.java(方法的定义和调用)
- 054.java(方法的返回值和参数)
- 055.java(方法传参机制)
- 056.java(static)
- 057.java(练习1)
- 058.java(练习2)
- 059.java(重载)
- 060.java(可变参数)
- 061.java(构造器)
- 062.java(变量作用域)
- 063.java(this)
- 064.java(包)
- 065.java(访问修饰符)
- 066.java(封装)
- 067.java(继承)
- 068.java(父类构造器)
- 069.java(super)
- 070.java(继承练习)
- 071.java(方法重写)
- 072.java(代码块)
- 073.java(多态1)
- 074.java(多态2)
- 075.java(动态绑定机制)
- 076.java(equals)
- 077.java(tostring)
- 078.java(final)
- 079.java(抽象类)
- 080.java(什么是接口)
- 081.java(接口细节)
- 082.java(idea的配置)
- 083.java(idea的其他功能)
- 084.java(idea的快捷键1)
- 085.java(idea的快捷键2)
- 086.java(idea的模板)
- 087.java(idea中你不知道的断点)
- 088.java(idea中你不知道的调试)
- 089.java(成员内部类)
- 090.java(静态内部类)
- 091.java(局部内部类)
- 092.java(匿名内部类)
- 093.java(枚举类)
- 094.java(枚举类相关方法)
- 095.java(注解)
- 096.java(try-catch)
- 097.java(throws与throw)
- 098.java(包装类)
- 099.java(字符串)
- 100.java(字符串方法)
- 101.java(字符串编码)
- 102.java(stringbuffer)
- 103.java(arrays.sort)
- 104.java(arrays和system)
- 105.java(biglnteger)
- 106.集合
- 107.集合(collection)
- 108.集合(list)
- 109.集合(list的遍历)
- 110.集合(arraylist)
- 111.集合(vector)
- 112.集合(双向链表)
- 113.集合(linkedlist源码分析)
- 114.集合(hashset)
- 115.集合(数组链表)
- 116.集合(hashset源码分析1)
- 117.集合(hashset源码分析2)
- 118.集合(hashset的输出顺序)
- 119.集合(hashset扩容机制)
- 120.集合(hashset练习)
- 121.集合(linkedhashset)
- 122.集合(map接口的特点)
- 123.集合(map接口常用方法)
- 124.集合(hashmap的遍历1)
- 125.集合(hashmap的遍历2)
- 126.集合(hashmap的遍历3)
- 127.集合(hashtable)
- 128.集合(properties)
- 129.集合(treeset)
- 130.集合(treemap)
- 131.集合(collections工具类)
- 132.集合使用的选择
- 133.泛型入门
- 134.泛型细节
- 135.自定义泛型类
- 136.自定义泛型接口
- 137.自定义泛型方法
- 138.泛型通配符
- 139.properties读配置文件
- 140.反射(快速入门)
- 141.反射(class的获取方式)
- 142.反射(哪些有class类对象)
- 143.反射创建对象
- 144.反射操作属性
- 145.反射操作方法
- 146.反射(class类对象的其他方法)
- 147.反射(打印类的结构信息)
- 02.第二部分android基础
- 01.linux介绍
- 02.vmware的安装
- 03.ubuntu系统的安装
- 04.虚拟机快照
- 05.ubuntu系统的配置
- 06.vmware的三种网络连接
- 07.linux常用命令1
- 08.linux常用命令2
- 09.linux常用命令3
- 10.linux常用命令4
- 11.linux常用命令5
- 12.linux常用命令6
- 13.linux常用命令7
- 14.linux权限
- 15.linux目录结构
- 16.androidstudio4.2的安装
- 17.jadx的配置
- 18.jeb的配置
- 19.adb工作原理
- 20.adb常用命令
- 21.包名获取的几种方式
- 22.app界面控件的查看
- 23.logcat
- 24.apk基本结构
- 25.android目录结构
- 26.android系统编译(下载初始化包)
- 27.android系统编译(同步指定版本源码)
- 28.android系统编译(获取手机驱动)
- 29.android系统编译(源码编译)
- 30.刷机前置知识
- 31.刷机详解
- 32.android10的root
- 33.android开发入门
- 34.anroidstudio工程目录结构
- 35.android程序执行入口
- 36.硬编码的定位
- 37.button
- 38.关于刷机的补充
- 39.关于安卓源码下载的补充
- 40.编译release版本的app
- 03.第三部分密码学探秘
- 01.密码学介绍
- 02.hex编码详解
- 03.base64编码
- 04.base64编码细节
- 05.消息摘要算法
- 06.md5算法
- 07.sha算法
- 08.mac算法
- 09.对称加密算法
- 10.des算法
- 11.des算法细节
- 12.desede算法
- 13.aes算法
- 14.关于填充方式的补充
- 15.非对称加密算法
- 16.rsa加解密
- 17.rsa细节
- 18.sa密钥的转换
- 19.rsa_hex加解密
- 20.多种加密算法的常见结合套路
- 21.数字签名算法
- 22.webstorm与node.js的安装
- 23.cryptojs在不同运行环境下的区别
- 24.cryptojs(消息摘要算法)
- 25.cryptojs(字符串解析)
- 26.cryptojs(对称加密算法)
- 27.cryptojs(对称加密算法细节)
- 28.cryptojs(其他算法)
- 29.js(rsa_pkcs1padding)
- 30.js(给jsencrypt加密库添加nopadding填充)
- 31.js数字签名算法
- 04.第四部分java层逆向实战
- 01.charles的安装与配置_转_标准
- 02.postern的安装与配置_转_标准
- 03.https的抓包_转_标准
- 04.http协议(url)_转_标准
- 05.http协议(get请求头)_转_标准
- 06.http协议(post请求头)_转_标准
- 07.httpcanary的安装配置与使用_转_标准
- 08.抓包原理详解1_转_标准
- 09.抓包原理详解2_转_标准
- 10.实战(某app算法分析)_转_标准
- 100.实战(提交数据乱码的定位方法)_转_标准
- 101.实战(非标准算法还原)_转_标准
- 102.免root+脱离pc使用frida_转_标准
- 103.实战(java层混淆_so入门)_转_标准
- 11.python和虚拟环境的安装
- 12.各种方式安装frida
- 13.frida-server的配置
- 14.实战(fridahook辅助算法分析)_转_标准
- 15.实战(某app的算法复现)_转_标准
- 16.实战(某app的协议复现_java)_转_标准
- 17.http_analyzer_v7的安装配置和使用_转_标准
- 18.实战(某app的协议复现_python)_转_标准
- 19.python_pyexecjs的中文问题_转_标准
- 20.实战(某app的协议复现_node.js)_转_标准
- 21.实战(某app的协议复现_易语言)_转_标准
- 22.post小结_转_标准
- 23.脱离pc使用frida_转_标准
- 24.app的简单防护(字符串加密)_转_标准
- 25.app的简单防护(反射调用相关类)_转_标准
- 26.关键代码快速定位1_转_标准
- 27.关键代码快速定位2_转_标准
- 28.关键代码快速定位3_转_标准
- 29.关键代码快速定位4_转_标准
- 30.关键代码快速定位5_转_标准
- 31.关键代码快速定位6_转_标准
- 32.关键代码快速定位7_转_标准
- 33.关键代码快速定位8_转_标准
- 34.关键代码快速定位9_转_标准
- 35.关键代码快速定位10_转_标准
- 36.关键代码快速定位11_转_标准
- 37.关键代码快速定位12_转_标准
- 38.关键代码快速定位13_转_标准
- 39.fridaapi(静态方法和实例方法的hook)_转_标准
- 40.fridaapi(函数参数和返回值的修改)_转_标准
- 41.fridaapi(构造方法的hook)_转_标准
- 42.fridaapi(对象参数的构造与修改)_转_标准
- 43.fridaapi(hashmap的打印)_转_标准
- 44.fridaapi(重载方法的hook)_转_标准
- 45.fridaapi(hook所有重载方法)_转_标准
- 46.fridaapi(主动调用java函数)_转_标准
- 47.fridaapi(函数栈的打印)_转_标准
- 48.fridaapi(获取和修改类的字段)_转_标准
- 49.fridaapi(内部类与匿名类的hook)_转_标准
- 50.fridaapi(枚举所有已加载的类与枚举类的所有方法)_转_标准
- 51.fridaapi(hook类的所有方法)_转_标准
- 52.fridaapi(java.registerclass)_转_标准
- 53.dx的使用_转_标准
- 54.baksmali与smali的使用_转_标准
- 55.apktool的使用_转_标准
- 56.apksigner的使用_转_标准
- 57.fridaapi(dex注入)_转_标准
- 58.fridaapi(hook枚举类)_转_标准
- 59.fridaapi(写文件_sd卡权限)_转_标准
- 60.fridaapi(java.cast)_转_标准
- 61.fridaapi(java.array)_转_标准
- 62.fridaapi(object数组的构建_可变参数)_转_标准
- 63.fridaapi(arraylist的主动调用)_转_标准
- 64.fridaapi(java.enumerateclassloaders)_转_标准
- 65.fridaapi(dexclassloader的hook)_转_标准
- 66.frida.exe的使用_转_标准
- 67.frida连接多设备多端口_转_标准
- 68.脚本开发(工具函数的封装)_转_标准
- 69.脚本开发(md5算法通杀hook)_转_标准
- 70.脚本开发(sha算法通杀hook)_转_标准
- 71.脚本开发(mac算法通杀hook)_转_标准
- 72.脚本开发(des算法通杀hook)_转_标准
- 73.脚本开发(3des算法通杀hook)_转_标准
- 74.脚本开发(aes算法的通杀hook)_转_标准
- 75.脚本开发(rsa算法的通杀hook)_转_标准
- 76.脚本开发(数字签名算法通杀hook)_转_标准
- 77.objection的安装_转_标准
- 78.objection(有手就能hook)_转_标准
- 79.objection(主动调用)_转_标准
- 80.objection(界面的跳转)_转_标准
- 81.objection(非标准端口与spawn)_转_标准
- 82.加固介绍_转_标准
- 83.objection暴力脱壳_转_标准
- 84.blackdex脱壳_转_标准
- 85.wallbreaker的使用_转_标准
- 86.让hook只在指定函数内生效_转_标准
- 87.frida自吐算法演示_转_标准
- 88.证书校验型app的抓包_转_标准
- 89.实战(某app算法逆向)_转_标准
- 90.实战(frida自吐算法的局限性)_转_标准
- 91.实战(逆向中需要注意的一些细节)_转_标准
- 92.实战(某app算法分析)_转_标准
- 93.实战(去强制升级)_转_标准
- 94.objection的补充_转_标准
- 95.免root使用frida-1_转_标准
- 96.免root使用frida-2_转_标准
- 97.关键代码快速定位的补充_转_标准
- 98.hook定位接口的实现类_转_标准
- 99.hook定位抽象类的实现类_转_标准
- 课程说明与解压密码.txt
- 05.第五部分c语言详解
- 01.c与c++的关系
- 02.clion的安装与配置
- 03.helloworld
- 04.c语言基础组成(语言共性)
- 05.常量
- 06.整型
- 07.浮点型
- 08.字符型
- 09.有符号数和无符号数
- 10.字符串
- 11.sprintf
- 12.布尔值
- 13.java类型与c语言类型
- 14.数据输入
- 15.数组
- 16.函数
- 17.指针入门
- 18.两种重要的运算符
- 19.指针常见错误
- 20.指针大小
- 21.指针与const
- 22.指针应用
- 23.数组指针
- 24.指针运算
- 25.函数参数的值传递
- 26.函数参数的引用传递
- 27.数组作为函数参数
- 28.函数指针
- 29.全局变量
- 30.静态变量
- 31.内存四区
- 32.模拟加密后的数据转hex编码
- 33.char指针与char数组的区别
- 34.内存操作
- 35.指针使用注意事项
- 36.多级指针
- 37.多级指针的应用
- 38.模拟加密字符串返回
- 39.结构体
- 40.结构体指针
- 41.小结
- 06.第六部分密码学进阶
- 01.学前须知_转_标准
- 02.c实现的md5算法的使用_转_标准
- 03.md5算法细节(明文的处理)_转_标准
- 04.字节序_转_标准
- 05.md5算法细节(m1-m16)_转_标准
- 06.md5算法细节(初始化常量)_转_标准
- 07.md5算法细节(md5transform)_转_标准
- 08.md5代码实现详解(明文的处理)_转_标准
- 09.md5代码实现详解(结果的计算)_转_标准
- 10.md5代码实现详解(md5transform)_转_标准
- 11.da的基本使用_转_标准
- 12.ida中的md5(ida中的数值转换)_转_标准
- 13.ida中的md5(ida中的数据类型)_转_标准
- 14.ida中的md5(md5算法的识别)_转_标准
- 15.ida的常用操作_转_标准
- 16.ida算法识别插件_转_标准
- 17.ida算法识别插件(findhash)_转_标准
- 18.so层自吐算法_转_标准
- 19.ida插件(trace_natives)_转_标准
- 20.so层自吐算法升级版_转_标准
- 21.sha1算法细节_转_标准
- 22.sa1代码实现详解_转_标准
- 23.哈希算法的识别_转_标准
- 24.hmacmd5算法介绍_转_标准
- 25.hmacmd5算法细节_转_标准
- 26.hmacmd5算法实现详解_转_标准
- 27.des算法细节(子密钥生成)_转_标准
- 28.des算法细节(明文的运算)_转_标准
- 29.des的实现源码分析1_转_标准
- 30.des的实现源码分析2_转_标准
- 31.des的魔改_转_标准
- 32.分组加密的填充_转_标准
- 33.分组加密的模式(ecb)_转_标准
- 34.分组加密的模式(cbc)_转_标准
- 35.分组加密的模式(其他)_转_标准
- 36.3des算法细节_转_标准
- 37.aes特点_转_标准
- 38.aes算法细节(明文的运算1)_转_标准
- 39.aes算法细节(明文的运算2)_转_标准
- 40.aes算法细节(密钥的编排)_转_标准
- 41.aes的代码实现_转_标准
- 42.aes查表法详解_转_标准
- 43.openssl的aes实现_转_标准
- 44.openssl的evp使用_转_标准
- 45.aes和des的区别与联系_转_标准
- 07.第七部分ndk开发
- 01.ndk介绍
- 02.ndk工程与纯java工程的区别
- 03.第一个ndk工程
- 04.so中常用的log输出
- 05.ndk多线程初探
- 06.ndk多线程传参
- 07.ndk多线程取返回值
- 08.jni_onload
- 09.javavm
- 10.jnienv
- 11.so相关的几个概念
- 12.so函数注册
- 13.异常处理
- 14.多个cpp文件编译成一个so
- 15.编译多个so
- 16.so路径的动态获取
- 17.so之间相互调用
- 18.通过jni创建java对象1
- 19通过jni创建java对象2
- 20.通过jni访问java属性
- 21.通过jni访问java数组1
- 22.通过jni访问java数组2
- 23.通过jni访问java方法1
- 24.通过jni访问java方法2
- 25.通过jni访问java方法3
- 26.通过jni访问java父类方法
- 27.内存管理(局部引用)
- 28.内存管理(全局引用)
- 29.子线程中获取java类1
- 30.子线程中获取java类2
- 31.init与initarray
- 32.oncreatenative化
- 课程说明与解压密码.txt
- 08.第八部分so层逆向实战
- 01.实战(so逆向分析)
- 02.枚举各种
- 03.实战(sohook导出函数)
- 04.模块基址的几种获取方式
- 05.函数地址的计算
- 06.hook任意函数
- 07.有手就行的sohook
- 08.实战(某app的so逆向)
- 09.实战(某app的so逆向)
- 10.实战(某app的so逆向)
- 11.实战(某app的so逆向)
- 12.实战(某app的so逆向)
- 13.实战(某app的so逆向)
- 14.实战(hook过root检测)
- 15.实战(某app的so逆向)
- 16.实战(二级指针的处理)
- 17.实战(jnitrace)
- 18.ollvm字符串解密
- 19.sodump
- 20.so修复
- 21.修改函数数值参数和返回值
- 22.修改函数字符串参数
- 23.frida操作c语言结构体
- 24.frida构建字符串以及需要注意的细节
- 25.获取指针参数返回值
- 26.hook_dlopen
- 27.内存读写
- 28.arm汇编介绍
- 29.frida修改so函数代码
- 30.memory.patchcode
- 31.so层主动调用任意函数
- 32.hooklibc读写文件
- 33.jni函数的hook1
- 34.jni函数的hook2
- 35.主动调用jni函数
- 36.so层打印函数栈
- 37.二级指针的构造
- 38.如何确认native函数在哪个so
- 39.快速定位jni静态注册函数
- 40.快速定位jni动态注册函数
- 41.inlinehook
- 42.源码分析(art下的system.loadlibrary)1
- 43.源码分析(art下的system.loadlibrary)2
- 44.hook_initarray
- 45.hook_jnionload
- 46.hook_pthread_create
- 47.打印so层函数栈和debugsymbol
- 48.替换函数
- 49.hexdump
- 50.frida-trace
- 51.内存读写监控
- 52.常见frida检测方法1
- 53.常见frida检测方法2
- 54.frida检测补充
- 55.实战(某app的so逆向)
- 56.实战(某app的so逆向)
- 57.frida-gadget持久化介绍
- 58.androidstudio导入aosp源码
- 59.配置开机时创建自定义目录
- 60.创建文件类型selinux标签
- 61.为自定义目录关联文件类型标签
- 62.配置system_app访问标签文件的权限
- 63.配置untrusted_app访问标签文件的权限
- 64.frida-gadget集成到系统
- 65.系统源码的修改1
- 66.系统源码的修改2
- 67.系统源码的修改3
- 68.魔改系统的编译
- 69.魔改系统的刷机
- 70.frida-gadget管理app的开发
- 71.frida-gadget持久化成品
- 09.第九部分算法转发与unidbg
- 01.frida的python库使用(包名附加)
- 02.frida的python库使用(pid附加)
- 03.frida的python库使用(spawn方式启动)
- 04.frida的python库使用(连接非标准端口和多个设备)
- 05.frida与python的交互(send)
- 06.frida与python的交互(recv)
- 07.frida的rpc远程调用
- 08.frida算法转发1
- 09.frida算法转发2
- 10.frida算法转发3
- 11.外网服务部署
- 12.fiddler数据转发
- 13.补充
- 14.unidbg介绍
- 15.unidbg入门案例
- 16.unidbg(通过符号寻找函数地址的过程)
- 17.unidbg(对传入的参数进行包装的过程)
- 18.unidbg入门案例
- 19.unidbg入门案例
- 20.处理so调用系统java类
- 21.处理so调用其他so
- 22.unidbg入门案例
- 23.通过符号调用函数1
- 24.通过符号调用函数2
- 25.通过偏移调用函数
- 26.unidbg中的hook
- 27.hookzz.wrap
- 28.hookzz.instrument
- 29.参数的获取
- 30.hookzz.replace
- 31.原生unicornhook
- 32.打印调用栈
- 33.unidbg中的动态调试
- 34.监控内存读写
- 35.unidbgtrace1
- 36.unidbgtrace2
- 37.处理so调用自写java类1
- 38.处理so调用自写java类2
- 39.处理so调用自写java类3
- 40.unidbg实际案例
- 41.unidbg实际案例
- 42.unibdg实际案例
- 43.unibdg实际案例
- 44.unidbg实际案例
- 45.unidbg中的virtualmodule
- 46.处理so与系统的交互(文件访问)
- 47.处理so与系统的交互(rootfs虚拟文件系统)
- 48.处理so与系统的交互(环境变量)
- 49.处理so与系统的交互(hooklistener)
- 50.处理so与系统的交互
- 51.linux内核的syscall
- 10.第十部分抓包检测与hook抓包
- 01.抓包复习
- 02.常见的抓包检测
- 03.vpn检测1
- 04.vpn检测2
- 05.vn检测3
- 06.httpsurlconnection的get和post请求
- 07.httpsurlconnection的自吐
- 08.httpsurlconnection的证书检测
- 09.httpsurlconnection证书检测的绕过
- 10.okhttp3的get和post请求
- 11.okhttp3的拦截器
- 12.okhttp3的自吐及快速定位
- 13.okhttp3的证书检测
- 14.okhttp3的certificatepinner
- 15.okhttp3证书检测的绕过1
- 16.okhttp3证书检测的绕过2
- 17.okhttp3混淆后的定位方法
- 18.okhttp3源码分析
- 19.java层ssl系统源码分析与自吐
- 20.jni层ssl系统源码分析
- 21.jni层ssl自吐1
- 22.jni层ssl自吐2
- 23.r0capture的使用
- 24.某app抓包实战
- 25.某app关键代码定位
- 26.某app抓包实战(证书dump与双向验证)
- 27.某app抓包实战(服务端校验客户端)
- 11.第11部分脱壳
- 01.加固与脱壳介绍
- 02.app加固的分类1
- 03.app加固的分类2
- 04.类加载器
- 05.双亲委派机制
- 06.fridahook中找不到类的原因
- 07.加固对hook的影响
- 08.art下的脱壳点
- 09.inmemorydexclassloader源码分析1
- 10.inmemorydexclassloader源码分析2(mcookie脱壳原理)
- 11.inmemorydexclassloader源码分析3(opendexfilesfromoat)
- 12.dexclassloader源码分析1
- 13.dexclassloader源码分析2
- 14.youpk脱壳原理
- 15.其他脱壳方法原理
- 16.打造自己的脱壳系统(fart脱壳组件源码分析)
- 17.打造自己的脱壳系统(fart魔改和迁移至android10)
- 18.打造自己的脱壳系统(android10上的报错修正)
- 19.打造自己的脱壳系统(抽取加固脱壳方案)
- 20.打造自己的脱壳系统(fart主动调用组件源码分析1)
- 21.打造自己的脱壳系统(fart主动调用组件源码分析2)
- 22.打造自己的脱壳系统(fart主动调用组件源码分析3)
- 23.打造自己的脱壳系统(fart主动调用组件源码分析4)
- 24.打造自己的脱壳系统(fart主动调用组件源码分析5)选修
- 25.打造自己的脱壳系统(fart魔改和迁移至android10)
- 26.脱壳演示
- 27.dex重构
- 28.fart改进方案1
- 29.fart改进方案2
- 资料.zip
包含内容
- · 001.开课交流
- · 002.windows环境配置
- · 003.cmd与环境变量
- · 004.jdk的安装
- · 005.jadx的简单使用
- · 006.gda的简单使用
- · 007.jeb的简单使用
- · 008.windows注意事项_python的安装
贡献者
林一
黄金