已完结 · 2023-2024

逆向工程师

分阶段学习爬虫、JS、安卓与 iOS,衔接编程基础、工具实践和底层专题。

2023-2024 · 已完结39 个章节 · 1446 条目录
咨询定价课程展示价格 · 最终以老师确认为准

课程介绍

课程年份与状态按最新课表维护,具体学习安排、服务与学员权益请与老师确认。

按阶段组织的综合逆向课程,从 Python、JavaScript、Java、C 和 Objective-C 等语言基础起步,逐步进入网络爬虫、JS 分析、安卓与 iOS 逆向。适合希望建立跨平台知识结构、并按主题反复查阅的学习者。

基础与应用部分覆盖 HTTP、密码学、Frida、抓包、Scrapy/Twisted、数据库、RPA 和小程序;进阶部分延伸到 AST 混淆还原、JS Hook 与补环境、验证码识别、NDK/JNI、ARM 汇编、安卓 SO 与 iOS 分析。

更深入的专题还包括 Chromium 开发、Unidbg 模拟执行、AOSP 系统定制及加密算法实现分析。目录保留各阶段的原始组织,便于沿学习路线推进,也可按当前研究问题检索相应章节。实践限于自有样本和明确授权的环境。

课程亮点

  • 语言基础与平台实践分阶段衔接,覆盖 Python、JS、Java、C 和 Objective-C。
  • 爬虫方向包含 Scrapy/Twisted、数据库、RPA、Docker 与分布式开发。
  • JS 方向涵盖 AST、Hook、混淆还原、补环境和 Chromium 开发。
  • 安卓方向串联 Frida、NDK/JNI、ARM、SO 分析、Unidbg 与系统定制。
  • iOS 方向结合 Objective-C、密码学、关键代码定位和运行时分析。
  • 补充小程序、图像识别与算法实现等专题,便于跨方向查阅。

课程目录

39 个章节 · 1446 个 MP4 视频标题。目录来自课程视频文件名,已去掉 .mp4 扩展名并按自然序排列;子文件夹作为章节,多层子目录保留层级名称。仅展示目录,不提供视频播放。

已按本地视频目录整理更新:2026-11-07

01

01.阶段一 / 01.Python基础

24 条
  • 00.逆向工程师培训班介绍
  • 01.Python解释器安装
  • 02.Pycharm安装与配置
  • 03.Python编译运行流程
  • 04.Python基本数据类型
  • 05.循环控制语句
  • 06.Python的函数
  • 07.Python的错误处理
  • 08.Python的类
  • 09.Python类的基本特性
  • 10.enumerate和zip
  • 11.Python文件读写
  • 12.Python导包
  • 13.with的原理
  • 14.call和参数
  • 15.Python常用装饰器
  • 16.自制装饰器
  • 17.Python多线程
  • 18.多线程上锁
  • 19.进程和进程池
  • 20.Python协程异步
  • 21.作业-学生管理系统
  • 22.作业讲解
  • 23.多进程代理数据共享
02

01.阶段一 / 02.网络爬虫入门

20 条
  • 01.网络爬虫基本原理
  • 02.开发者工具的使用
  • 03.requests请求库基础
  • 04.requests请求库进阶
  • 05.httpx协议2.0和异步爬虫
  • 06.aiohttp异步请求库
  • 07.requests、httpx、aiohttp性能比较
  • 08.bs4解析库
  • 09.xpath查找语法
  • 10.正则表达式匹配
  • 11.文字类爬虫案例
  • 12.图片类爬虫案例
  • 13.音乐类爬虫案例
  • 14.视频类爬虫案例
  • 15.POST英数验证码案例
  • 16.爬虫案例-wy新闻
  • 17.爬虫案例-宏信zq
  • 18.爬虫案例-免费代理和验证
  • 19.爬虫案例-sx僧
  • 20.爬虫案例-sx僧2
03

01.阶段一 / 03.JavaScript基础

139 条
  • 01.为什么要学JavaScript
  • 02.JavaScript介绍
  • 03.JS逆向需要学习哪些内容
  • 04.Windows系统(注意事项)
  • 05.Windows系统(cmd)
  • 06.Windows系统(环境变量)
  • 07.WebStorm与Node.js的安装
  • 08.第一个JS程序
  • 09.编程语言共性
  • 10.变量
  • 11.常量
  • 12.注释_关键字_保留字_标识符
  • 13.数据类型(number和bigint)
  • 14.进制
  • 15.字符串
  • 16.其他原始类型
  • 17.显式类型转换
  • 18.算术运算符
  • 19.算术运算符练习
  • 20.自增和自减
  • 21.自增和自减练习
  • 22.赋值运算符
  • 23.关系运算符
  • 24.逻辑运符
  • 25.三元运算符
  • 26.隐式类型转换
  • 27.if语句
  • 28.if语句练习
  • 29.switch语句
  • 30.while循环
  • 31.while循环练习
  • 32.for循环
  • 33.for循环注意事项
  • 34.循环嵌套
  • 35.常见的循环控制方法(break_continue_return)
  • 36.函数介绍
  • 37.函数定义的几种方式
  • 38.函数的参数
  • 39.函数的返回值
  • 40.变量作用域
  • 41.块级作用域
  • 42.函数的作用域
  • 43.程序调试
  • 44.作用域链
  • 45.作用域练习
  • 46.匿名函数
  • 47.对象介绍1
  • 48.对象介绍2
  • 49.对象字面量
  • 50.对象练习
  • 51.对象属性的遍历
  • 52.对象的方法
  • 53.对象的解构
  • 54.原始类型与对象类型的区别
  • 55.对象作为函数参数
  • 56.函数传参机制
  • 57.对象作为函数返回值
  • 58.window对象
  • 59.vm2的安装和使用
  • 60.如何构建纯净的V8环境
  • 61.globalThis
  • 62.this
  • 63.重点练习
  • 64.函数的方法(call和apply)
  • 65.函数的方法(bind)
  • 66.严格模式
  • 67.面向对象介绍
  • 68.类的属性与方法的声明和使用
  • 69.构造函数
  • 70.封装
  • 71.继承
  • 72.重写Object的toString方法
  • 73.重写构造函数
  • 74.多态
  • 75.原型对象
  • 76.原型链
  • 77.旧类
  • 78.对象的属性描述对象
  • 79.Object.defineProperty
  • 80.getter和setter
  • 81.Object.create
  • 82.Object.setPrototypeOf
  • 83.Object的其他方法
  • 84.可选链操作符
  • 85.数组
  • 86.数组的常用方法1
  • 87.数组的常用方法2
  • 88.练习(数组去重)
  • 89.高阶函数
  • 90.数组遍历1
  • 91.数组遍历2
  • 92.数组作为函数参数和返回值
  • 93.arguments
  • 94.可变参数和展开运算符
  • 95.数组解构
  • 96.数组练习
  • 97.浅拷贝与深拷贝
  • 98.对象序列化
  • 99.异常处理
  • 100.内置对象(Math_Date)
  • 101.内置对象(Map)
  • 102.内置对象(Set)
  • 103.String的常用方法1
  • 104.正则表达式的简单使用
  • 105.正则表达式(修饰符_量词)
  • 106.正则表达式(元字符)
  • 107.正则表达式进阶
  • 108.字符串的常用方法2
  • 109.模块化编程
  • 110.HTML介绍
  • 111.HTML表单
  • 112.简易后台的搭建
  • 113.CSS
  • 114.图片切片混淆原理
  • 115.图片切片混淆实现(css背景定位)
  • 116.图片切片混淆实现(canvas)
  • 117.JS代码在网页中的编写位置
  • 118.DOM(文档节点)
  • 119.DOM(元素节点的获取和创建)
  • 120.DOM(元素节点的属性和方法)
  • 121.DOM(文本节点和属性节点)
  • 122.事件
  • 123.事件练习
  • 124.事件对象
  • 125.事件冒泡
  • 126.事件委派
  • 127.BOM
  • 128.setTimeout与setInterval
  • 129.jQuery的使用1
  • 130.jQuery的使用2
  • 131.原生ajax发送GET请求
  • 132.原生ajax发送POST请求
  • 133.Promise的作用
  • 134.Promise的使用
  • 135.Promise解决回调地狱
  • 136.jQuery中的ajax
  • 137.fetch
  • 138.axios
  • 139.jsonp跨域请求
04

01.阶段一 / 04.密码学JS

25 条
  • 01.密码学介绍
  • 02.字符编码
  • 03.位运算符
  • 04.Hex编码
  • 05.Base64编码
  • 06.消息摘要算法
  • 07.JS中的MD5
  • 08.JS中的SHA
  • 09.JS中的HMAC
  • 10.JS中的SM3
  • 11.CryptoJS(字符串解析)
  • 12.对称加密算法
  • 13.加密模式和填充方式
  • 14.JS中的DES
  • 15.JS中的DESede
  • 16.JS中的AES
  • 17.对称加密算法注意事项
  • 18.CryptoJS自动生成key_iv_salt
  • 19.CryptoJS(其他算法)
  • 20.SM4
  • 21.RSA介绍
  • 22.RSA常见加密库的使用
  • 23.RSA的填充
  • 24.JS数字签名算法库的使用
  • 25.SM2算法库的使用
05

01.阶段一 / 05.JS逆向入门

31 条
  • 01.抓包工具的分类
  • 02.开发者工具抓包的缺陷
  • 03.Charles的安装与配置
  • 04.Charles抓包Python数据包
  • 05.Proxifier抓取软件数据包
  • 06.开发者工具的使用
  • 07.Elements面板
  • 08.Network面板
  • 09.关键代码快速定位(搜索+普通断点+callstack)
  • 10.关键代码快速定位(xhr断点+callstack)
  • 11.关键代码快速定位(initiator+callstack)
  • 12.关键代码快速定位(事件断点)
  • 13.关键代码快速定位(debugger和条件断点)
  • 14.关键代码快速定位(jshook)
  • 15.JS逆向实战(y龙贷)
  • 16.JS逆向实战(xs盟)
  • 17.JS逆向实战(hl创投)
  • 18.JS逆向实战(wxgz平台)
  • 19.JS逆向实战(某交易平台)
  • 20.JS逆向实战(ddky)
  • 21.JS逆向实战(xl微博)
  • 22.JS逆向实战(d信_sm2)
  • 23.JS逆向实战(某89邮箱)
  • 24.JS逆向实战(某39邮箱)
  • 25.JS逆向实战(F天下)
  • 26.JS逆向实战(qd掌柜_eval)
  • 27.JS逆向实战(qd掌柜_sm34)
  • 28.JS逆向实战(qd掌柜_sm2_整体抠webpack)
  • 29.JS逆向实战(qd掌柜_sm2_分模块抠webpack)
  • 30.作业讲解(某游戏网站JS逆向)
  • 31.作业讲解(南海xx)
06

01.阶段一 / 06.密码学Python

17 条
  • 01.Python消息摘要算法
  • 02.AES算法和五种模式实现
  • 03.Python编写RSA算法
  • 04.Python编写DES-DES3算法
  • 05.Python编写RC4流加密算法
  • 06.Python数字签名算法
  • 07.Python实现hmac算法
  • 08.Python实现国密算法SM2
  • 09.Python实现国密算法SM4
  • 10.JS逆向案例-sha256和验证码
  • 11.JS逆向案例-DES加密
  • 12.JS逆向案例-AES加密
  • 13.JS逆向案例-RSA加密
  • 14.JS逆向案例-MD5
  • 15.JS逆向案例-AES
  • 16.Python实现国密算法SM3
  • 17.JS逆向案例-3DES
07

01.阶段一 / 07.Java语言详解

127 条
  • 001.JDK的安装与配置
  • 002.Java语言特点
  • 003.第1个Java程序
  • 004.Java语言的基础组成
  • 005.注释
  • 006.IDEA的安装与配置
  • 007.转义字符
  • 008.Java(变量)
  • 009.Java(数据类型)
  • 010.Java(整数类型)
  • 011.Java(浮点类型)
  • 012.Java(字符型)
  • 013.Java(布尔型)
  • 014.Java(自动类型转换)
  • 015.Java(强制类型转换)
  • 016.Java(关键字和保留字)
  • 017.Java(标识符)
  • 018.Java(常量)
  • 019.Java(算术运算符1)
  • 020.Java(算术运算符2)
  • 021.Java(算术运算符练习)
  • 022.Java(赋值运算符)
  • 023.Java(关系运算符)
  • 024.Java(逻辑运算符)
  • 025.Java(逻辑运算符练习)
  • 026.Java(三元运算符)
  • 027.Java(运算符优先级)
  • 028.Java(进制与位运算符)
  • 029.Java(进制转换)
  • 030.Java(Hex编码)
  • 031.Java(if语句)
  • 032.Java(switch语句)
  • 033.Java(while循环)
  • 034.Java(for循环)
  • 035.Java(break与continue)
  • 036.Java(数组)
  • 037.Java(数组遍历)
  • 038.Java(值传递与引用传递)
  • 039.Java(二维数组)
  • 040.Java(数组练习)
  • 041.Java(10进制转16进制代码实现)
  • 042.Java(帮助文档的查阅)
  • 043.Java(类和对象)
  • 044.Java(对象创建过程)
  • 045.Java(方法的定义和调用)
  • 046.Java(方法的返回值和参数)
  • 047.Java(方法传参机制)
  • 048.Java(static)
  • 049.Java(练习1)
  • 050.Java(练习2)
  • 051.Java(重载)
  • 052.Java(可变参数)
  • 053.Java(构造器)
  • 054.Java(变量作用域)
  • 055.Java(this)
  • 056.Java(包)
  • 057.Java(访问修饰符)
  • 058.Java(封装)
  • 059.Java(继承)
  • 060.Java(父类构造器)
  • 061.Java(super)
  • 062.Java(继承练习)
  • 063.Java(方法重写)
  • 064.Java(代码块)
  • 065.Java(多态1)
  • 066.Java(多态2)
  • 067.Java(动态绑定机制)
  • 068.Java(equals)
  • 069.Java(toString)
  • 070.Java(final)
  • 071.Java(抽象类)
  • 072.Java(什么是接口)
  • 073.Java(接口细节)
  • 074.Java(成员内部类)
  • 075.Java(静态内部类)
  • 076.Java(局部内部类)
  • 077.Java(匿名内部类)
  • 078.Java(枚举类)
  • 079.Java(枚举类相关方法)
  • 080.Java(注解)
  • 081.Java(try-catch)
  • 082.Java(throws与throw)
  • 083.Java(包装类)
  • 084.Java(字符串)
  • 085.Java(字符串方法)
  • 086.Java(字符串编码)
  • 087.Java(StringBuffer)
  • 088.Java(Arrays.sort)
  • 089.Java(Arrays和System)
  • 090.Java(Biglnteger)
  • 091.集合
  • 092.集合(Collection)
  • 093.集合(List)
  • 094.集合(List的遍历)
  • 095.集合(ArrayList)
  • 096.集合(Vector)
  • 097.集合(双向链表)
  • 098.集合(HashSet)
  • 099.集合(数组链表)
  • 100.集合(HashSet练习)
  • 101.集合(LinkedHashSet)
  • 102.集合(Map接口的特点)
  • 103.集合(Map接口常用方法)
  • 104.集合(HashMap的遍历1)
  • 105.集合(HashMap的遍历2)
  • 106.集合(HashMap的遍历3)
  • 107.集合(Hashtable)
  • 108.集合(Properties)
  • 109.集合(TreeSet)
  • 110.集合(TreeMap)
  • 111.集合(Collections工具类)
  • 112.集合使用的选择
  • 113.泛型入门
  • 114.泛型细节
  • 115.自定义泛型类
  • 116.自定义泛型接口
  • 117.自定义泛型方法
  • 118.泛型通配符
  • 119.Properties读配置文件
  • 120.反射(快速入门)
  • 121.反射(Class的获取方式)
  • 122.反射(哪些有Class类对象)
  • 123.反射创建对象
  • 124.反射操作属性
  • 125.反射操作方法
  • 126.反射(Class类对象的其他方法)
  • 127.反射(打印类的结构信息)
08

01.阶段一 / 08.安卓基础

30 条
  • 01.安卓逆向设备推荐
  • 02.AndroidStudio的安装与配置
  • 03.刷机前置知识
  • 04.刷机详解1
  • 05.刷机详解2
  • 06.pixel6刷机注意事项
  • 07.pixel6刷入KernelSU
  • 08.jadx的使用
  • 09.GDA的使用
  • 10.jeb的使用
  • 11.adb工作原理
  • 12.adb常用命令
  • 13.查看包名的几种方式
  • 14.logcat
  • 15.安卓历史版本
  • 16.apk中的常见文件
  • 17.安卓系统架构
  • 18.Linux常用命令1
  • 19.Linux常用命令2
  • 20.Linux常用命令3
  • 21.Linux常用命令4
  • 22.Linux权限
  • 23.安卓常见目录
  • 24.安卓开发入门
  • 25.AndroidStudio工程目录结构
  • 26.安卓程序执行入口
  • 27.硬编码的定位
  • 28.Button_Log
  • 29.Toast_EditText
  • 30.编译release版本的app
09

01.阶段一 / 09.密码学Java

16 条
  • 01.Hex编码详解
  • 02.Base64编码
  • 03.MD5算法
  • 04.SHA算法
  • 05.MAC算法
  • 06.DES算法
  • 07.DES算法细节
  • 08.DESede算法
  • 09.AES算法
  • 10.关于填充方式的补充
  • 11.RSA加解密
  • 12.RSA细节
  • 13.RSA密钥的转换
  • 14.RSA_Hex加解密
  • 15.多种加密算法的常见结合套路
  • 16.数字签名算法
10

01.阶段一 / 10.安卓逆向入门

26 条
  • 01.安卓逆向案例1(分析)
  • 02.frida环境搭建
  • 03.frida-server的配置
  • 04.frida-server配置常见的几个问题
  • 05.安卓逆向案例1(hook)
  • 06.安卓逆向案例1(主动调用)
  • 07.安卓逆向案例1(翻译)
  • 08.hook与frida介绍
  • 09.安卓逆向案例2(hook)
  • 10.安卓逆向案例2(知识点扩充)
  • 11.安卓逆向案例2(抠代码)
  • 12.常规WiFi代理抓包
  • 13.Charles+socksdroid抓取HTTP数据
  • 14.Charles+socksdroid抓取HTTPS数据
  • 15.HttpCanary的安装与配置
  • 16.lamda的安装与使用
  • 17.定制系统的自动抓包功能使用
  • 18.eCapture的使用
  • 19.安卓逆向案例3(分析)
  • 20.安卓逆向案例3(hook)
  • 21.安卓逆向案例3(算法复现)
  • 22.安卓逆向案例3(协议复现_Java)
  • 23.安卓逆向案例3(协议复现_Python)
  • 24.pyexecjs的中文问题
  • 25.安卓逆向案例3(协议复现_Node.js)
  • 26.安卓逆向案例3(协议复现_易语言)
11

02.阶段二 / 11.滑块处理入门

18 条
  • 01.JS逆向滑块的基本思路
  • 02.51滑块图片请求
  • 03.51滑块图片混淆还原思路
  • 04.51滑块图片混淆还原
  • 05.51滑块模拟发包
  • 06.51滑块全流程
  • 07.FK滑块算法分析
  • 08.FK滑块图片请求
  • 09.FK滑块轨迹vi生成
  • 10.FK滑块轨迹发包
  • 11.FK滑块轨迹伪造
  • 12.YP滑块算法分析
  • 13.YP滑块设备指纹算法
  • 14.YP滑块加密算法还原
  • 15.YP滑块图片请求
  • 16.YP滑块轨迹伪造
  • 17.YP滑块py数组传参js
  • 18.YP滑块轨迹发包
12

02.阶段二 / 12.JS混淆原理

12 条
  • 01.JS混淆介绍
  • 02.十六进制与unicode字符串
  • 03.ASCII码混淆
  • 04.字符串常量加密
  • 05.数值常量加密
  • 06.数组混淆
  • 07.数组乱序
  • 08.花指令
  • 09.jsfuck
  • 10.流程平坦化
  • 11.逗号表达式混淆
  • 12.eval加密_作业
13

02.阶段二 / 13.JS逆向实战

16 条
  • 01.eval与Function
  • 02.常见debugger的几种形式
  • 03.无限debugger的绕过
  • 04.jh图床sign参数算法
  • 05.技巧_快速定位关键代码
  • 06.某娱乐场data参数算法
  • 07.某娱乐场d参数算法1
  • 08.某娱乐场d参数算法2
  • 09.某娱乐场d参数算法3
  • 10.某混淆案例逆向1
  • 11.某混淆案例逆向2
  • 12.某混淆案例逆向
  • 13.某webpack分析与处理
  • 14.自动抠webpack演示
  • 15.某证券websocket逆向
  • 16.某某音乐下载
14

02.阶段二 / 14.各类安卓app逆向

74 条
  • 01.app算法分析流程
  • 02.app的简单防护(字符串加密)
  • 03.app的简单防护(反射调用相关类)
  • 04.关键代码快速定位1
  • 05.关键代码快速定位2
  • 06.关键代码快速定位3
  • 07.关键代码快速定位4
  • 08.关键代码快速定位5
  • 09.关键代码快速定位6
  • 10.关键代码快速定位7
  • 11.关键代码快速定位8
  • 12.关键代码快速定位9
  • 13.关键代码快速定位10
  • 14.关键代码快速定位11
  • 15.关键代码快速定位12
  • 16.关键代码快速定位13
  • 17.定制系统的代码定位功能使用1
  • 18.定制系统的代码定位功能使用2
  • 19.fridaAPI(静态方法和实例方法的hook)
  • 20.fridaAPI(函数参数和返回值的修改)
  • 21.fridaAPI(构造方法的hook)
  • 22.fridaAPI(对象参数的构造与修改)
  • 23.fridaAPI(HashMap的打印)
  • 24.fridaAPI(重载方法的hook)
  • 25.fridaAPI(hook所有重载方法)
  • 26.fridaAPI(主动调用Java函数)
  • 27.fridaAPI(获取和修改类的字段)
  • 28.fridaAPI(内部类与匿名类的hook)
  • 29.fridaAPI(枚举所有已加载的类与枚举类的所有方法)
  • 30.fridaAPI(hook类的所有方法)
  • 31.baksmali与smali的使用
  • 32.fridaAPI(dex注入)
  • 33.fridaAPI(写文件_sd卡权限)
  • 34.fridaAPI(Java.cast)
  • 35.fridaAPI(Java.array)
  • 36.fridaAPI(Object数组的构建_可变参数)
  • 37.fridaAPI(Arraylist的主动调用)
  • 38.让hook只在指定函数内生效
  • 39.hook定位接口的实现类
  • 40.hook定位抽象类的实现类
  • 41.frida各种选项介绍
  • 42.frida连接多设备
  • 43.脚本开发(工具函数的封装)
  • 44.脚本开发(MD5算法通杀hook)
  • 45.脚本开发(SHA算法通杀hook)
  • 46.脚本开发(MAC算法通杀hook)
  • 47.脚本开发(DES算法通杀hook)
  • 48.脚本开发(3DES算法通杀hook)
  • 49.脚本开发(AES算法的通杀hook)
  • 50.脚本开发(RSA算法的通杀hook)
  • 51.脚本开发(数字签名算法通杀hook)
  • 52.自吐算法演示
  • 53.某app逆向实战(不脱壳逆向算法)
  • 54.某app逆向实战(不脱壳去除更新弹窗)
  • 55.某app逆向实战(去除强制更新)
  • 56.某app逆向实战(去除更新弹窗)
  • 57.某app逆向实战(提交数据乱码的定位方法)
  • 58.某app逆向实战(非标准算法还原)
  • 59.某app逆向实战(不脱壳绕过证书检测)
  • 60.某app逆向实战(so初探)
  • 61.混淆函数的hook方法
  • 62.H5的app逆向实战(远程调试)
  • 63.H5的app逆向实战(JS与Java交互)
  • 64.frida的Java层hook替代方案(打印所有被调用函数和参数)
  • 65.frida的Python库使用(包名附加)
  • 66.frida的Python库使用(pid附加)
  • 67.frida的Python库使用(spawn方式启动)
  • 68.frida的Python库使用(连接非标准端口和多个设备)
  • 69.frida与Python的交互(send)
  • 70.frida与Python的交互(recv)
  • 71.frida的rpc远程调用
  • 72.frida算法转发1
  • 73.frida算法转发2
  • 74.frida算法转发3
15

02.阶段二 / 15.Scrapy框架与Twisted

22 条
  • 01.第一个scrapy项目
  • 02.Scrapy体系架构概述
  • 03.Scrapy体系源码探究
  • 04.Scrapy可用命令
  • 05.Scrapy爬取某瓣读书
  • 06.Scrapy管道pipeline
  • 07.Scrapy管道的内置函数
  • 08.Scrapy的信号机制
  • 09.Scrapy随机UA中间件
  • 10.Scrapy中间件process_request返回
  • 11.Scrapy中间件process_response返回
  • 12.Scrapy的Request
  • 13.Scrapy三种POST发送形式
  • 14.Twisted直接运行爬虫
  • 15.Twisted邮件提醒
  • 16.scrapy暂停和重启(官方文档)
  • 17.自制暂停重启功能
  • 18.crawl模板
  • 19.用twisted写爬虫
  • 20.scrapy爬取名言网站
  • 21.scrapy爬取名言网站2
  • 22.scrapy日志设置
16

02.阶段二 / 16.各类数据库使用

34 条
  • 01.sqlite数据库
  • 02.tinydb数据库
  • 03.mysql安装配置
  • 04.mysql的table
  • 05.mysql增删改查
  • 06.mysql数值类型
  • 07.mysql字符串类型
  • 08.mysql日期类型
  • 09.mysql数据库引擎
  • 10.mysql事务操作
  • 11.多线程操作pymysql
  • 12.子查询
  • 13.pymysql操作数据库
  • 14.sqlAlchemy操作mysql
  • 15.多表查询-内外连接
  • 16.多线程数据库连接池
  • 17.sqlalchemy外键多表查询
  • 18.sqlalchemy的mysql存储JSON
  • 19.redis数据库安装使用
  • 20.redis常用数据类型
  • 21.redis设置键过期时间
  • 22.redis事务
  • 23.redis消息发布订阅机制
  • 24.redis持久化之RDB
  • 25.redis持久化之AOF
  • 26.python操作redis连接池
  • 27.python操作pipeline开启事务
  • 28.redis主从复制
  • 29.python实现redis发布订阅
  • 30.mongodb安装配置
  • 31.mongodb增删改查
  • 32.mongodb的ID内涵
  • 33.mongodb的查询
  • 34.python操作mongodb
17

02.阶段二 / 17.RPA机器人流程自动化

23 条
  • 01.RPA机器人流程自动化介绍
  • 02.影刀RPA安装介绍
  • 03.影刀RPA爬取百度
  • 04.影刀RPA爬取豆瓣读书
  • 05.影刀RPA爬取某证券
  • 06.RPA获取反爬网站cookie
  • 07.RPA万能转发Python后端
  • 08.影刀RPA编写Python模块
  • 09.影刀RPA手机自动化环境配置
  • 10.影刀RPA自动刷某音视频
  • 11.python-uiautomator2环境配置
  • 12.weditor定位和使用
  • 13.seleniumEdge配置
  • 14.selenium过检测
  • 15.selenium过某宝滑块
  • 16.selenium自动化已经存在的浏览器
  • 17.playwright过检测
  • 18.playwright移动设备仿真
  • 19.playwright多page爬取
  • 20.playwright异步并发多浏览器
  • 21.大漠dll_python环境配置
  • 22.大漠绑定测试工具
  • 23.Python大漠图色键鼠调用
18

02.阶段二 / 18.小程序逆向

29 条
  • 01.小程序开发配置
  • 02.小程序项目文件
  • 03.小程序核心文件
  • 04.小程序页面入门
  • 05.微信小程序的跳转实现
  • 06.微信小程序循环判断语句
  • 07.微信小程序数据绑定
  • 08.微信小程序事件绑定
  • 09.微信小程序Python后端
  • 10.微信小程序构造GET和POST
  • 11.微信小程序PC端WX提包反编译
  • 12.某足球小程序编译修复和抓包请求
  • 13.修复企某查小程序编译错误
  • 14.Hook微信小程序授权码原理
  • 15.Hook企某查小程序过授权码
  • 16.修复某丰快递小程序编译错误
  • 17.Hook过某快递授权码
  • 18.分包丢失修复
  • 19.某讯新闻小程序修复
  • 20.微信小程序appid、openid和unionid
  • 21.某新闻小程序openid参数逆向
  • 22.微信小程序云开发项目结构
  • 23.微信小程序云数据库操作
  • 24.微信小程序云函数调用和传参
  • 25.微信小程序云函数抓包
  • 26.webpack打包小程序参数逆向
  • 27.快x漫画小程序修复和爬取
  • 28.x品会小程序修复
  • 29.x品会JS参数逆向
19

03.阶段三 / 19.docker容器

11 条
  • 1.docker安装部署
  • 2.docker部署redis
  • 3.docker部署爬虫项目
  • 4.pycharm远程同步docker
  • 5.docker目录挂载
  • 6.docker虚拟机联通
  • 7.pycharm调用docker镜像解释器
  • 8.发布自己的镜像包
  • 9.docker-compose多容器打包
  • 10.docker修改镜像安装目录
  • 11.docker网络
20

03.阶段三 / 20.分布式开发

6 条
  • 1.京东商品上半页
  • 2.京东商品下半页
  • 3.京东商品评论
  • 4.分布式概念
  • 5.实现分布式架构
  • 6.docker-conpose分布式项目
21

03.阶段三 / 21.AST混淆与还原

47 条
  • 01.AST入门
  • 02.代码的基本结构
  • 03.parser与generator
  • 04.traverse与visitor_1
  • 05.traverse与visitor_2
  • 06.traverse与visitor_3
  • 07.types判断节点类型
  • 08.types生成新的节点
  • 09.valueToNode
  • 10.path对象1
  • 11.path对象2
  • 12.path对象3
  • 13.父级path
  • 14.同级path
  • 15.scope对象
  • 16.referencePaths与constantViolations
  • 17.遍历作用域
  • 18.标识符重命名_作业
  • 19.混淆(改变对象属性访问方式)
  • 20.混淆(JS标准内置对象的处理)
  • 21.混淆(数值常量加密)
  • 22.混淆(字符串常量加密)
  • 23.混淆(数组混淆)
  • 24.混淆(数组乱序)
  • 25.混淆(十六进制文本)
  • 26.混淆(标识符混淆)
  • 27.混淆(标识符的随机生成)
  • 28.混淆(二项式转函数花指令)
  • 29.混淆(标识符混淆补充)
  • 30.混淆(代码的逐行加密)
  • 31.混淆(流程平坦化)
  • 32混淆(流程平坦化进阶1)
  • 33.混淆(流程平坦化进阶2)
  • 34.混淆(流程平坦化进阶3)
  • 35.混淆(逗号表达式混淆)
  • 36.还原实战(字符串解密)
  • 37.还原实战(字符串递归解密)
  • 38.还原实战(去除字符串花指令)
  • 39.还原实战(去除函数花指令)
  • 40.还原实战(去除虚假指令1)
  • 41.还原实战(去除虚假指令2)
  • 42.还原实战(去除未引用代码)
  • 43.还原实战(去除switch混淆)
  • 44.还原实战案例2
  • 45.webpack逆向(分模块处理)
  • 46.webpack逆向(整体处理)
  • 47.AST自动抠webpack
22

03.阶段三 / 22.JSHook

21 条
  • 01.Hook基本原理和作用
  • 02.Hook对象属性
  • 03.Hook_Cookie读写
  • 04.toString检测和保护
  • 05.函数Native化
  • 06.函数重命名
  • 07.函数Hook插件封装
  • 08.集成保护代码
  • 09.Hook原型对象属性方法1
  • 10.Hook原型对象属性方法2
  • 11.Hook原型对象所有属性方法
  • 12.Hook全局window的函数和原型
  • 13.Proxy代理对象属性和方法
  • 14.Proxy代理封装get和set
  • 15.Proxy代理拦截属性描述符
  • 16.Proxy代理定义属性描述符
  • 17.Proxy代理函数apply
  • 18.Proxy代理构造函数
  • 19.Proxy代理has方法
  • 20.Proxy代理handler方法
  • 21.补某webpack网站环境
23

03.阶段三 / 23.验证码识别

17 条
  • 01.pytorch深度学习环境配置
  • 02.pytorch张量Tensor
  • 03.Tensor类型转化
  • 04.Tensor算术运算
  • 05.pytorch广播机制
  • 06.整数余数算术运算
  • 07.pytorch和统计学函数
  • 08.pytorch随机抽样
  • 09.pytorch张量裁剪
  • 10.pytorch之yolov环境搭建
  • 11.yolo识别图片
  • 12.简化yolo识别函数
  • 13.yolo标注和训练
  • 14.通用验证码识别
  • 15.训练环境配置
  • 16.验证码训练
  • 17.服务接口搭建
24

03.阶段三 / 24.C语言基础

101 条
  • 01.C语言介绍
  • 02.1.CLion的安装与配置
  • 02.2.Xcode的安装
  • 03.Xcode创建第一个C工程
  • 04.Xcode配置简介
  • 05.添加和删除target
  • 06.第一个C程序(注释)
  • 07.第一个C程序(主函数)
  • 08.第一个C程序(其他细节)
  • 09.变量
  • 10.printf函数
  • 11.变量(其他细节)
  • 12.交换两个变量的几种方式
  • 13.变量命名规范
  • 14.自动类型转换
  • 15.算术运算符
  • 16.算术运算小案例
  • 17复合赋值运算符
  • 18.比较运算符
  • 19.自增运算符
  • 20.逗号表达式
  • 21.逻辑运算符
  • 22.逻辑运算小案例
  • 23.运算符优先级
  • 24.运算符优先级小案例
  • 25.if语句
  • 26.变量作用域
  • 27.ifelse
  • 28.三目运算符
  • 29.ifelseif
  • 30.if语句使用小案例
  • 31.switch语句
  • 32.if和switch的选择
  • 33.if和switch的小案例
  • 34.程序调试
  • 35.while循环
  • 36.死循环
  • 37.循环案例
  • 38.break与continue
  • 39.dowhile
  • 40.for循环
  • 41.嵌套循环
  • 42.位运算小案例
  • 43.进制
  • 44.二进制转十六进制
  • 45.位与
  • 46.位或
  • 47.位异或
  • 48.位移
  • 49.位运算应用
  • 50.int的修饰
  • 51.无符号数
  • 52.数组
  • 53.数组使用注意事项
  • 54.数组初始化
  • 55.数组在内存中的存储形式
  • 56.数组的小案例
  • 57.数组反转
  • 58.字符数组
  • 59.字符串长度的计算
  • 60.字符串相关函数
  • 61.函数的定义和调用
  • 62.函数的声明
  • 63.函数参数
  • 64.函数返回值
  • 65.预处理指令(#define定义常量和函数)
  • 66.预处理指令(#include)
  • 67.全局变量
  • 68.静态变量和静态函数
  • 69.全局变量和局部变量的异同
  • 70.指针入门
  • 71.两种重要的运算符
  • 72.指针入门2
  • 73.指针常见错误
  • 74.指针与const
  • 75.内存中的五个区域
  • 76.指针与字符串1
  • 77.指针与字符串2
  • 78.数组指针1
  • 79.数组指针2
  • 80.中括号的本质
  • 81.函数参数的值传递
  • 82.函数参数的地址传递
  • 83.C语言中的常见写法
  • 84.内存操作(malloc)
  • 85.内存操作注意事项
  • 86.内存操作(calloc与realloc)
  • 87.指针作为函数返回值1
  • 88.指针作为函数返回值2
  • 89.函数指针
  • 90.C语言中的Hex编码
  • 91.指针练习1
  • 92.指针练习2
  • 93.多级指针
  • 94.结构体
  • 95.结构体数组
  • 96.结构体指针
  • 97.结构体嵌套
  • 98.结构体作为函数参数
  • 99.结构体作为返回值
  • 100.匿名结构体_typedef
25

03.阶段三 / 25.NDK开发

32 条
  • 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化
26

03.阶段三 / 26.ARM汇编

31 条
  • 00.IDA的基本使用
  • 01.ARM汇编介绍1
  • 02.ARM汇编介绍2
  • 03.ARM32寄存器
  • 04.ARM64寄存器
  • 05.cemu的安装与使用
  • 06.寻址方式1
  • 07.寻址方式2
  • 08.寻址方式3
  • 09.ARM32栈寻址
  • 10.ARM64栈寻址
  • 11.多寄存器寻址
  • 12.ARM32读写PC寄存器
  • 13.ARM64读写PC寄存器
  • 14.MOV指令
  • 15.任意立即数放入寄存器
  • 16.指令后缀
  • 17.条件执行后缀
  • 18.全局资源定位
  • 19.调用约定
  • 20.函数的栈帧
  • 21.汇编C逆向(循环)
  • 22.汇编C逆向(数组)
  • 23.汇编C逆向(if语句)
  • 24.汇编C逆向(switch语句)
  • 25.汇编C逆向(结构体)
  • 26.ARM32与ARM64的区别总结
  • 27.汇编花指令案例1(JUMPOUT)
  • 28.汇编花指令案例2(asm)
  • 29.汇编花指令案例3
  • 30.汇编花指令案例4
27

03.阶段三 / 27.安卓so逆向

45 条
  • 01.实战(so逆向分析)
  • 02.枚举各种
  • 03.hook导出函数
  • 04.hook任意函数
  • 05.ARM32地址的计算
  • 06.实战(sohook)
  • 07.修改数值参数和返回值
  • 08.内存读写
  • 09.修改字符串参数
  • 10.获取指针参数返回值
  • 11.修改so函数代码
  • 12.hook_dlopen
  • 13.so层主动调用任意函数
  • 14.hooklibc读写文件
  • 15.替换函数
  • 16.hook_pthread_create
  • 17.二级指针的构造
  • 18.jni函数的hook
  • 19.主动调用jni函数
  • 20.so层打印函数栈
  • 21.inlineHook
  • 22.如何确认native函数注册在哪个so
  • 23.jni静态注册源码分析
  • 24.快速定位jni静态注册函数
  • 25.jni动态注册源码分析
  • 26.快速定位jni动态注册函数
  • 27.System.loadLibrary源码分析1
  • 28.System.loadLibrary源码分析2
  • 29.hook_initarray
  • 30.so逆向实战(frida替代方案1)
  • 31.so逆向实战(frida替代方案2)
  • 32.sohook代码封装
  • 33.so逆向实战(分析)
  • 34.so逆向实战(还原)
  • 35.so逆向实战
  • 36.inlinehook(获取so基址1)
  • 37.inlinehook(获取so基址2)
  • 38.inlinehook(获取so基址3)
  • 39.inlinehook_dlsym
  • 40.inlinehook_RegisterNatives
  • 41.so逆向实战(分析)
  • 42.so逆向实战(还原)
  • 43.so逆向实战(分析1)
  • 44.so逆向实战(分析2)
  • 45.so逆向实战(还原)
28

03.阶段三 / 28.lsposed开发

14 条
  • 01.lsposed安装
  • 02.lsposed模块开发
  • 03.hook构造函数
  • 04.hook普通方法
  • 05.获取和修改函数参数返回值
  • 06.获取和修改类的属性
  • 07.hook自定义类参数
  • 08.hook匿名类与内部类
  • 09.替换函数
  • 10.打印函数栈
  • 11.主动调用
  • 12.反射主动调用
  • 13.hook方法的所有重载
  • 14.hook类的所有方法
29

03.阶段三 / 29.OC基础

51 条
  • 01.OC概述
  • 02.第一个OC程序
  • 03.OC数据类型
  • 04.属性的声明
  • 05.对象属性的访问
  • 06.对象方法1
  • 07.对象方法2
  • 08.对象方法3
  • 09.对象方法4
  • 10.方法中访问属性
  • 11.isa指针
  • 12.多文件开发
  • 13.对象作为方法的参数
  • 14.对象作为方法的返回值
  • 15.对象作为属性
  • 16.OC中的static
  • 17.类方法
  • 18.类方法注意事项
  • 19.self
  • 20.属性的封装
  • 21.继承的简单使用
  • 22.继承的特点
  • 23.super关键字
  • 24.访问修饰符
  • 25.方法重写
  • 26.多态
  • 27.万能指针
  • 28.动态类型检测
  • 29.description方法
  • 30.构造方法
  • 31.点语法
  • 32.@property
  • 33.@property参数
  • 34.MRC和ARC
  • 35.分类
  • 36.block1
  • 37.block2
  • 38.协议protocol
  • 39.常用类(NSString)1
  • 40.常用类(NSString)2
  • 41.常用类(NSString)3
  • 42.常用类(NSString)4
  • 43.常用类(NSString)5
  • 44.常用类(NSMutableString)
  • 45.常用类(NSArray)1
  • 46.常用类(NSArray)2
  • 47.常用类(NSArray)3
  • 48.常用类(NSMutableArray)
  • 49.常用类(NSNumber)
  • 50.常用类(NSDictionary)
  • 51.常用类(NSFileManger)
30

03.阶段三 / 30.密码学iOS

15 条
  • 01.第一个iOS工程
  • 02.密码学介绍
  • 03.Hex编码
  • 04.Base64编码
  • 05.消息摘要算法
  • 06.MD5的使用
  • 07.SHA的使用
  • 08.Hmac的使用
  • 09.对称加密算法
  • 10.DES加密的使用
  • 11.AES加密的使用
  • 12.非对称加密算法
  • 13.RSA加解密1
  • 14.RSA加解密2
  • 15.多种加密算法常见结合套路
31

03.阶段三 / 31.iOS逆向

87 条
  • 01.iOS逆向介绍
  • 02.测试机推荐
  • 03.一键刷机
  • 04.越狱介绍
  • 05.Checkra1n越狱
  • 06.Palera1n越狱
  • 07.巨魔商店的安装和使用
  • 08.Dopamine越狱
  • 09.Charles抓包
  • 10.VPN抓包
  • 11.Python的安装和删除
  • 12.frida的安装
  • 13.frida代码提示配置
  • 14.ssh的使用
  • 15.常用命令1
  • 16.常用命令2
  • 17.常用命令3
  • 18.常用命令4
  • 19.iOS系统常见目录
  • 20.ipa常见组成结构
  • 21.文件权限
  • 22.iphone配置指定版本fridaserver
  • 23.sslpinning的绕过
  • 24.frida-trace的使用
  • 25.快速入门案例(算法分析1)
  • 26.快速入门案例(算法分析2)
  • 27.快速入门案例(算法复现)
  • 28.砸壳
  • 29.IDA的安装
  • 30.快速入门案例(OC逆向)
  • 31.快速入门案例(frida_hook_oc)1
  • 32.快速入门案例(frida_hook_oc)2
  • 33.frida使用(OC类方法_对象方法的hook)
  • 34.frida使用(打印函数栈)
  • 35.frida使用(主动调用OC方法)
  • 36.frida使用(修改参数和返回值)
  • 37.frida读写内存
  • 38.frida使用(NSData的构造)
  • 39.frida使用(NSArray的构造)
  • 40.frida使用(NSDictionary的构造)
  • 41.frida使用(带Block参数的函数主动调用)
  • 42.frida使用(替换OC方法)
  • 43.frida使用(hook_block)
  • 44.frida使用(批量hook方法)
  • 45.frida写文件
  • 46.frida-tools的使用
  • 47.frida-server自定义端口
  • 48.关键代码定位1
  • 49.关键代码定位2
  • 50.关键代码定位3
  • 51.frida的Python库(进程名附加)
  • 52.frida的Python库(pid附加)
  • 53.frida的Python库(spawn启动进程)
  • 54.frida的Python库(连接非标准端口)
  • 55.frida与python的交互(send)
  • 56.frida与python的交互(recv)
  • 57.frida的rpc
  • 58.frida算法转发
  • 59.frida使用(枚举各种符号)
  • 60.frida使用(模块地址的获取)
  • 61.frida使用(通过计算地址来hook_OC方法)
  • 62.frida使用(hook_C函数)
  • 63.frida使用(获取指针参数返回值)
  • 64.frida使用(修改字符串参数)
  • 65.frida使用(主动调用任意函数)
  • 66.frida使用(替换C函数)
  • 67.frida使用(批量hook_C函数)
  • 68.frida使用(inlinehook)
  • 69.某哔实战案例(sign)
  • 70.某哔实战案例(device_meta)
  • 71.逆向实战案例(某fc)
  • 72.逆向实战案例(mcd)
  • 73.逆向实战案例(SHA1_RSA)
  • 74.逆向实战案例(公钥的提取)
  • 75.逆向实战案例(RSA)
  • 76.双向验证的抓包
  • 77.基本通杀的hook抓包
  • 78.某app逆向实战(通过弹窗定位代码)
  • 79.某app逆向实战(HTTP2.0介绍)
  • 80.某app逆向实战(提交数据乱码的定位)
  • 81.某app逆向实战(openssl_AES)
  • 82.某app逆向实战(openssl_RSA)
  • 83.某app逆向实战(补充和frida_spawn)
  • 84.某app逆向实战(魔改md5)
  • 85.双向验证抓包案例_证书的dump
  • 86.H5的app逆向方法
  • 87.某国外案例frida检测的绕过
32

03.阶段三 / 32.便捷转发方案

5 条
  • 01.FiddlerScript万能转发脚本
  • 02.FiddlerScript脚本学习
  • 03.FiddlerScript脚本编写
  • 04.万能转发脚本使用和建议
  • 05.JS转发之websocket的RPC
33

04.阶段四 / 33.JS补环境

45 条
  • 01.补环境框架结构设计
  • 02.补环境框架代码搭建
  • 03.补环境框架测试
  • 04.补window原型链
  • 05.补报错函数
  • 06.补base64编码解码函数
  • 07.补WindowProperties环境
  • 08.补Window原型对象属性
  • 09.封装函数和原型保护函数
  • 10.保护get和set方法
  • 11.重写defineproperty方法
  • 12.env环境分发
  • 13.脱浏览器环境脚本编写
  • 14.脱浏览器环境脚本编写2
  • 15.脱浏览器环境脚本编写3
  • 16.脱浏览器原型对象属性方法
  • 17.脱浏览器实例对象
  • 18.浏览器补document环境
  • 19.浏览器补location环境
  • 20.固定随机参数
  • 21.日志输出到本地
  • 22.解决重复代理
  • 23.解决代理失效
  • 24.node环境检测点去除
  • 25.补localStorage属性方法
  • 26.补createElement环境
  • 27.获取原型对象上边的属性
  • 28.补getElementsByTagName环境
  • 29.初始化标签的方法
  • 30.补document.write方法
  • 31.补document.getElementById
  • 32.补cookie存取
  • 33.创建Plugin对象
  • 34.创建插件数组
  • 35.创建mimeType
  • 36.创建mimetypeArray
  • 37.pycharm浏览器代码联调
  • 38.浏览器插件补齐
  • 39.浏览器插件属性方法补齐
  • 40.addEventListener事件补齐
  • 41.补setTimeout事件
  • 42.补clearTimeout事件
  • 43.获取浏览器鼠标轨迹
  • 44.node获取轨迹加密结果
  • 45.补环境流程总结
34

04.阶段四 / 34.JS逆向进阶

21 条
  • 01.补环境框架实战ths_cookie
  • 02.补环境实战某数扣代码
  • 03.补环境实战补某数DOM
  • 04.补环境实战某数环境缺失
  • 05.补setInterval异步环境
  • 06.补某数Promise环境
  • 07.补某数cookie生成环境
  • 08.某数4后缀生成定位
  • 09.补某数后缀环境
  • 10.某数4补环境成果展示
  • 11.SSL_TLS指纹解析
  • 12.chromium内核中的TLS指纹
  • 13.某音乐signature
  • 14.扣x乎webpack代码
  • 15.精简webpack函数
  • 16.某验4代加密定位
  • 17.某验4代参数1
  • 18.某验4代参数2
  • 19.某验4代轨迹加密
  • 20.某验4代加密参数
  • 21.某验4代w值生成
35

04.阶段四 / 35.chromium浏览器开发

20 条
  • 01.chromium编译win虚拟机配置
  • 02.chromium编译工具配置
  • 03.chromium浏览器编译运行
  • 04.chromium拉取指定版本源码
  • 05.chromium多进程架构
  • 06.V8引擎编译运行
  • 07.vs2022编译V8引擎
  • 08.webkit浏览器内核编译
  • 09.JavaScriptCore引擎编译运行
  • 10.chromium随机指纹之canvas详解
  • 11.canvas指纹随机
  • 12.navigator特征定位修改
  • 13.webRTC泄露公网IP修改
  • 14.webGL指纹定位修改
  • 15.webGL图像指纹定位修改
  • 16.屏幕分辨率指纹修改
  • 17.client-hint指纹定位修改
  • 18.font字体指纹修改
  • 19.webAudio音频指纹修改
  • 20.时区V8指纹定位修改
36

04.阶段四 / 36.unidbg模拟执行so

33 条
  • 01.unidbg介绍
  • 02.入门案例
  • 03.通过符号寻找函数地址的过程
  • 04.对传入的参数进行包装的过程
  • 05.入门案例1
  • 06.入门案例2
  • 07.处理so调用系统Java类
  • 08.处理so调用其他so
  • 09.入门案例3
  • 10.通过符号调用函数1
  • 11.通过符号调用函数2
  • 12.通过偏移调用函数_内存读写
  • 13.unidbg中的hook
  • 14.hookzz.wrap
  • 15.hookzz.instrument
  • 16.hook入门案例
  • 17.hookzz.replace
  • 18.原生UnicornHook
  • 19. 打印调用栈
  • 20.unidbg中的动态调试
  • 21.监控内存读写
  • 22.traceCode1
  • 23.traceCode2
  • 24.处理so调用自写Java类1
  • 25.处理so调用自写Java类2
  • 26.处理so调用自写Java类3
  • 27.unidbg多线程
  • 28.新版unidbg补充
  • 29.unidbg实战案例
  • 30.unidbg实战案例
  • 31.unidbg实战案例
  • 32.unidbg实战案例
  • 33.unidbg实战案例
37

04.阶段四 / 37.安卓系统定制

82 条
  • 01.安卓系统定制介绍
  • 02.VMware的安装
  • 03.Ubuntu系统的安装
  • 04.虚拟机快照
  • 05.Ubuntu系统的配置
  • 06.VMware的三种网络连接
  • 07.安卓10编译(下载初始化包)
  • 08.安卓10编译(同步指定版本源码)
  • 09.安卓10编译(获取pixel设备驱动)
  • 10.安卓10编译(编译pixel设备系统)
  • 11.pixel设备刷机
  • 12.AOSP源码导入到AndroidStudio
  • 13.去除WIFI叉号
  • 14.联网自动更新时间
  • 15.设置默认中文
  • 16.设置默认息屏时间
  • 17.编译测试
  • 18.编译注意事项
  • 19.防root检测介绍
  • 20.超级adbd
  • 21.去除userdebug特征1
  • 22.修改源码支持adb_remount
  • 23.默认开启adb
  • 24.去除userdebug特征2
  • 25.修复不进系统的问题
  • 26.去除userdebug特征3
  • 27.去除userdebug特征4(改vendor.img)
  • 28.去除谷歌设备信息
  • 29.防VPN检测1
  • 30.防VPN检测2
  • 31.防VPN检测3
  • 32.WebView强制可调试
  • 33.加固与脱壳介绍
  • 34.整体加固介绍
  • 35.ART下的脱壳点
  • 36.InMemoryDexClassLoader源码分析1
  • 37.InMemoryDexClassLoader源码分析2(mCookie脱壳原理)
  • 38.InMemoryDexClassLoader源码分析3(OpenDexFilesFromOat)
  • 39.DexClassLoader源码分析1
  • 40.DexClassLoader源码分析2
  • 41.youpk脱壳原理
  • 42.其他脱壳方法原理
  • 43.AOSP源码导入到CLion
  • 44.整体加固脱壳源码分析
  • 45.整体加固脱壳源码移植到安卓10_1
  • 46.整体加固脱壳源码移植到安卓10_2
  • 47.整体加固脱壳成品测试
  • 48.抽取加固介绍
  • 49.类加载器
  • 50.双亲委派机制
  • 51.加固对类加载器的影响
  • 52.抽取加固脱壳源码分析(遍历所有ClassLoader)
  • 53.抽取加固脱壳源码分析(遍历所有的类)
  • 54.抽取加固脱壳源码分析(遍历类中的所有函数)
  • 55.类的加载和初始化流程
  • 56.方法调用流程
  • 57.抽取加固脱壳源码分析(CodeItem的保存)
  • 58.抽取加固脱壳源码移植到安卓10_3
  • 59.抽取加固脱壳源码移植到安卓10_4
  • 60.抽取加固脱壳源码移植到安卓10_5
  • 61.抽取加固脱壳成品测试
  • 62.dex重构
  • 63.脱壳系统改进方案
  • 64.Frida增强脱壳功能
  • 65.脱壳系统的优化_配置启用_过滤类名_Loge
  • 66.过滤主进程_脱壳闪退的处理
  • 67.其他加固形式
  • 68.方法的解释执行流程
  • 69.invoke指令的执行流程
  • 70.追踪Java函数调用关系
  • 71.追踪jni函数调用关系
  • 72.ManagedStack介绍
  • 73.强制解释执行_追踪函数调用测试
  • 74.smali_trace原理
  • 75.smali_trace实现
  • 76.smali_trace测试
  • 77.frida持久化介绍
  • 78.frida持久化实现
  • 79.frida持久化测试
  • 80.pixel内核源码下载(旧版方式)
  • 81.pixel内核编译(旧版方式)
  • 82.pixel内核源码下载与编译(新版方式)
38

04.阶段四 / 38.安卓系统定制

14 条
  • 01.安卓10编译(pixel3)
  • 02.超级adbd在user版本下的问题
  • 03.pixel3内核编译
  • 04.pixel3修改vendor.img
  • 05.pixel3集成KernelSU(下载修改源码)
  • 06.pixel3集成KernelSU(编译)
  • 07.增加自动抓包功能
  • 08.smaliTrace通过创建文件启用
  • 09.增加功能(打印所有被调用函数和参数)
  • 10.增加功能(任意注入so)
  • 11.任意注入so测试
  • 12.增加功能(监听native函数注册)
  • 13.增加功能(sodump)
  • 14.so修复
39

04.阶段四 / 39.安卓逆向进阶

65 条
  • 01.C实现的MD5算法的使用
  • 02.MD5算法细节(明文的处理)
  • 03.字节序
  • 04.MD5算法细节(初始化常量)
  • 05.MD5算法细节(MD5Transform)
  • 06.MD5代码实现详解(明文的处理)
  • 07.MD5代码实现详解(结果的处理)
  • 08.MD5代码实现详解(MD5Transform)
  • 09.IDA中的MD5
  • 10.IDA的常用操作
  • 11.1.魔改MD5逆向实战(unidbg调用)
  • 11.2.魔改MD5逆向实战1
  • 11.3.魔改MD5逆向实战2
  • 11.4.魔改MD5逆向实战3
  • 12.1.魔改MD5逆向实战(unidbg调用)
  • 12.2.魔改MD5逆向实战(第1轮)
  • 12.3.魔改MD5逆向实战(第2轮)
  • 12.4.魔改MD5逆向实战(第3-4轮)
  • 12.5.魔改MD5逆向实战(前16轮)
  • 12.6.魔改MD5逆向实战(第17-32轮)
  • 12.7.魔改MD5逆向实战(第33-64轮)
  • 12.8.魔改MD5逆向实战(最后的魔改)
  • 13.SHA1算法细节
  • 14.SHA1代码实现详解
  • 15.哈希算法的识别
  • 16.1.魔改SHA1逆向实战(unidbg调用)
  • 16.2.魔改SHA1逆向实战(明文的字节序)
  • 16.3.魔改SHA1逆向实战(初始化常量_K表)
  • 17.1.魔改SHA256逆向实战(魔改点的分析)
  • 17.2.魔改SHA256逆向实战(明文魔改分析)
  • 17.3.魔改SHA256逆向实战(明文的还原)
  • 17.4.魔改SHA256逆向实战(运算部分的还原)
  • 18.HmacMD5算法介绍
  • 19.HmacMD5算法细节
  • 20.HmacMD5算法实现详解
  • 21.DES算法细节(子密钥生成)
  • 22.DES算法细节(明文的运算)
  • 23.DES的实现源码分析1
  • 24.DES的实现源码分析2
  • 25.DES的魔改
  • 26.分组加密的填充
  • 27.分组加密的模式(ECB)
  • 28.分组加密的模式(CBC)
  • 29.分组加密的模式(其他)
  • 30.3DES算法细节
  • 31.AES算法细节(密钥编排)
  • 32.AES算法细节(加密运算)
  • 33.AES查表法详解
  • 34.openssl的aes实现
  • 35.白盒加密介绍
  • 36.从轮密钥推导主密钥
  • 37.1差分故障攻击原理1
  • 37.2.差分故障攻击原理2
  • 38.1.白盒AES逆向实战(关键代码定位)
  • 38.2.白盒AES逆向实战(某加固的字符串加密)
  • 38.3.白盒AES逆向实战(so层关键代码定位)
  • 38.4.白盒AES逆向实战(算法分析)
  • 38.5.白盒AES逆向实战(获取故障密文)
  • 38.6.白盒AES逆向实战(提取密钥)
  • 38.7.白盒AES逆向实战(故障注入时机的定位方法)
  • 39.1.白盒AES_CBC算法逆向实战(填充方式)
  • 39.2.白盒AES_CBC算法逆向实战(iv向量)
  • 39.3.白盒AES_CBC算法逆向实战(密钥还原)
  • 40.逆向分析_OLLVM还原_绕过frida检测
  • 41.stalker的使用_通用绕过frida检测的方法

信息整理:2026-11-07 · 课程介绍与目录在本站直接浏览;当前未接入视频播放、订单与在线支付。

欢迎回到小肩膀

与热爱技术的人,一起向前。

本地预览:账号服务尚未接入,不会保存或提交密码。

还没有账号?