逆向工程师2025
2024-12-24 22:48:26 0 举报
AI智能生成
《逆向工程师》课程凝结了小肩膀教育多年的技术栈,涉及网络爬虫、网页JS逆向、安卓逆向、iOS逆向、小程序逆向、验证码识别、RPA自动化等多个领域。目的是培养网络爬虫数据采集方向的、移动端安全防护和逆向方向的专业人员。
作者其他创作
大纲/内容
爬虫工程师
Python基础
Windows系统注意事项
解释器安装
PyCharm安装与配置
基本数据类型
循环控制语句
函数
错误处理
面向对象
类的基本特性
enumerate和zip
文件读写
导包
with
call方法和参数
常用装饰器
自制装饰器
多线程
多线程上锁
进程和进程池
协程异步
多进程代理数据共享
阶段作业
作业讲解
网络爬虫入门
网络爬虫基本原理
开发者工具使用
requests请求库基础
requests请求库进阶
httpx协议2.0和异步爬虫
aiohttp异步请求库
bs4解析库
xpath查找语法
正则表达式匹配
实战案例
文字类爬虫案例
图片类爬虫案例
音乐类爬虫案例
视频类爬虫案例
带验证码的爬虫案例
网页端带加密的爬虫案例
安卓端带加密的爬虫案例
iOS端带加密的爬虫案例
密码学Python
消息摘要算法
Python使用hmac算法
Python使用RC4算法
Python使用DES-3DES算法
AES算法和五种模式实现
Python使用RSA算法
Python数字签名算法
Python实现国密算法SM2
Python实现国密算法SM3
Python实现国密算法SM4
Scrapy框架与Twisted
第一个scrapy项目
Scrapy体系架构概述
Scrapy体系源码探究
Scrapy可用命令
Scrapy爬取某瓣读书
Scrapy管道pipeline
Scrapy管道的内置函数
Scrapy的信号机制
Scrapy随机UA中间件
Scrapy中间件process_request返回
Scrapy中间件process_response返回
Scrapy的Request
Scrapy三种POST发送形式
Twisted直接运行爬虫
Twisted邮件提醒
scrapy暂停和重启(官方文档)
自制暂停重启功能
crawl模板
用twisted写爬虫
scrapy爬取名言网站
scrapy爬取名言网站2
scrapy日志设置
各类数据库使用
sqlite数据库
tinydb数据库
mysql数据库
mysql安装配置
mysql的table
mysql增删改查
mysql数值类型
mysql字符串类型
mysql日期类型
mysql数据库引擎
mysql事务操作
多线程操作pymysql
子查询
pymysql操作数据库
sqlAlchemy操作mysql
多表查询-内外连接
多线程数据库连接池
sqlalchemy外键多表查询
sqlalchemy的mysql存储JSON
redis数据库
redis数据库安装使用
redis常用数据类型
redis设置键过期时间
redis事务
redis消息发布订阅机制
redis持久化之RDB
redis持久化之AOF
python操作redis连接池
python操作pipeline开启事务
redis主从复制
python实现redis发布订阅
mongodb数据库
mongodb安装配置
mongodb增删改查
mongodb的ID内涵
mongodb的查询
python操作mongodb
docker容器
docker安装部署
docler部署redis
docker部署爬虫项目
pycharm远程同步docker
docker目录挂载
docker虚拟机联通
pycharm调用docker镜像解释器
发布自己的镜像包
docker-compose多容器打包
docker修改镜像安装目录
docker网络
RPA机器人流程自动化
RPA机器人流程自动化介绍
影刀
影刀RPA安装介绍
影刀RPA爬取百度
影刀RPA爬取豆瓣读书
影刀RPA爬取某证券
RPA获取反爬网站cookie
RPA万能转发Python后端
影刀RPA编写Python模块
影刀RPA手机自动化环境配置
影刀RPA自动刷某音视频
python-uiautomator2环境配置
weditor定位和使用
selenium
seleniumEdge配置
selenium过检测
selenium过某宝滑块
selenium自动化已经存在的浏览器
playwright
playwright过检测
playwright移动设备仿真
playwright多page爬取
playwright异步并发多浏览器
大漠
大漠dll_python环境配置
大漠绑定测试工具
Python大漠图色键鼠调用
chromium浏览器开发
chromium编译win虚拟机配置
chromium编译工具配置
chromium浏览器编译运行
chromium拉取指定版本源码
chromium多进程架构
V8引擎编译运行
vs2022编译V8引擎
webkit浏览器内核编译
JavaScriptCore引擎编译运行
chromium随机指纹之canvas详解
canvas指纹随机
navigator特征定位修改
webRTC泄露公网IP修改
webGL指纹定位修改
webGL图像指纹定位修改
屏幕分辨率指纹修改
client-hint指纹定位修改
font字体指纹修改
webAudio音频指纹修改
时区V8指纹定位修改
SSL_TLS指纹解析
chromium内核中的TLS指纹
JS逆向工程师
JavaScript基础
JS入门
为什么要学JavaScript
JavaScript介绍
JS逆向需要学习哪些内容
WebStorm与Node.js的安装
第一个JS程序
编程语言共性
变量、数据类型、类型转换
变量
常量
注释、关键字、保留字、标识符
数据类型(number和bigint)
进制
字符串
其他原始类型
显式类型转换
运算符
算术运算符
算术运算符练习
自增和自减
自增和自减练习
赋值运算符
关系运算符
逻辑运算符
三元运算符
隐式类型转换
流程控制语句
if语句
if语句练习
switch语句
while循环
while循环练习
for循环
for循环注意事项
循环嵌套
常见的循环控制方法(break_continue_return)
函数、作用域
函数介绍
函数定义的几种方式
函数的参数
函数的返回值
变量作用域
块级作用域
函数的作用域
程序调试
作用域链
作用域练习
匿名函数
对象
对象介绍
对象字面量
对象练习
对象属性的遍历
对象的方法
对象的解构
原始类型与对象类型的区别
对象作为函数参数
函数传参机制
对象作为函数返回值
window对象
vm2的安装和使用
如何构建纯净的V8环境
globalThis
this
重点练习
函数的方法(call和apply)
函数的方法(bind)
面向对象
面向对象介绍
类的属性与方法的声明和使用
构造函数
封装
继承
重写Object的toString方法
重写构造函数
多态
原型对象
原型链
旧类
对象的属性描述对象
Object.defineProperty
getter和setter
Object.create
Object.setPrototypeOf
Object的其他方法
可选链操作符
数组
数组
数组的常用方法
练习(数组去重)
高阶函数
数组遍历
数组作为函数参数和返回值
arguments
可变参数和展开运算符
数组解构
数组练习
其他
浅拷贝与深拷贝
对象序列化
异常处理
内置对象(Math_Date)
正则表达式
字符串的常用方法
模块化编程
浏览器相关
HTML介绍
HTML表单
简易后台的搭建
CSS
图片切片混淆原理
图片切片混淆实现(css背景定位)
图片切片混淆实现(canvas)
JS代码在网页中的编写位置
DOM(文档节点)
DOM(元素节点的获取和创建)
DOM(元素节点的属性和方法)
DOM(文本节点和属性节点)
事件
BOM
setTimeout与setInterval
jQuery的使用
原生ajax发送GET请求
原生ajax发送POST请求
Promise的作用
Promise的使用
Promise解决回调地狱
jQuery中的ajax
fetch
axios
jsonp跨域请求
密码学JS
密码学介绍
字符编码
位运算符
Hex编码
Base64编码
消息摘要算法
JS中的MD5
JS中的SHA
JS中的HMAC
JS中的SM3
CryptoJS(字符串解析)
对称加密算法
加密模式和填充方式
JS中的DES
JS中的DESede
JS中的AES
对称加密算法注意事项
CryptoJS自动生成key_iv_salt
CryptoJS(其他算法)
SM4
RSA介绍
RSA常见加密库的使用
RSA的填充
JS数字签名算法库的使用
SM2算法库的使用
JS逆向入门
抓包
抓包工具的分类
开发者工具抓包的缺陷
Charles的安装与配置
Charles抓包Python数据包
Proxifier抓取软件数据包
开发者工具
开发者工具的使用
Elements面板
Network面板
关键代码定位
关键代码快速定位(搜索+普通断点+callstack)
关键代码快速定位(xhr断点+callstack)
关键代码快速定位(initiator+callstack)
关键代码快速定位(事件断点)
关键代码快速定位(debugger和条件断点)
关键代码快速定位(jshook)
逆向实战
y龙贷
wxgz平台
某交易平台
dd快药
xl微博
d信_sm2
某89邮箱
某39邮箱
F天下
qd掌柜_eval
qd掌柜_sm34
qd掌柜_sm2_整体抠webpack
qd掌柜_sm2_分模块抠webpack
某游戏网站JS逆向
南海xx
JS混淆原理
JS混淆介绍
十六进制与unicode字符串
ASCII码混淆
字符串常量加密
数值常量加密
数组混淆
数组乱序
花指令
jsfuck
流程平坦化
逗号表达式混淆
JS逆向实战
eval与Function
常见debugger的几种形式
无限debugger的绕过
jh图床sign参数算法
技巧_快速定位关键代码
某娱乐场data参数算法
某娱乐场d参数算法
某混淆案例逆向
某webpack分析与处理
自动抠webpack演示
某证券websocket逆向
某某音乐下载
AST混淆与还原
AST入门
AST入门
代码的基本结构
parser与generator
traverse与visitor
types判断节点类型
types生成新的节点
valueToNode
Path对象
父级path
同级Path
scope对象
referencePaths与constantViolations
遍历作用域
标识符重命名_作业
使用AST实现自动混淆
混淆(改变对象属性访问方式)
混淆(JS标准内置对象的处理)
混淆(数值常量加密)
混淆(字符串常量加密)
混淆(数组混淆)
混淆(数组乱序)
混淆(十六进制文本)
混淆(标识符混淆)
混淆(标识符的随机生成)
混淆(二项式转函数花指令)
混淆(标识符混淆补充)
混淆(代码的逐行加密)
混淆(流程平坦化)
混淆(流程平坦化进阶)
混淆(逗号表达式混淆)
使用AST实现自动还原
还原实战(字符串解密)
还原实战(字符串递归解密)
还原实战(去除字符串花指令)
还原实战(去除函数花指令)
还原实战(去除虚假指令1)
还原实战(去除虚假指令2)
还原实战(去除未引用代码)
还原实战(去除switch混淆)
还原实战案例2
AST自动抠webpack
webpack逆向(分模块处理)
webpack逆向(整体处理)
AST自动抠webpack
JSHook
Hook基本原理和作用
Hook对象属性
Hook_Cookie读写
toString检测和保护
函数Native化
函数重命名
函数Hook插件封装
集成保护代码
Hook原型对象属性方法1
Hook原型对象属性方法2
Hook原型对象所有属性方法
Hook全局window的函数和原型
Proxy代理对象属性和方法
Proxy代理封装get和set
Proxy代理拦截属性描述符
Proxy代理定义属性描述符
Proxy代理函数apply
Proxy代理构造函数
Proxy代理has方法
Proxy代理handler方法
补某webpack网站环境
JS补环境
补环境框架结构设计
补环境框架代码搭建
补环境框架测试
补window原型链
补报错函数
补base64编码解码函数
补WindowProperties环境
补Window原型对象属性
封装函数和原型保护函数
保护get和set方法
重写defineproperty方法
env环境分发
脱浏览器环境脚本编写
脱浏览器原型对象属性方法
脱浏览器实例对象
浏览器补document环境
浏览器补location环境
固定随机参数
日志输出到本地
解决重复代理
解决代理失效
node环境检测点去除
补localStorage属性方法
补createElement环境
获取原型对象上边的属性
补getElementsByTagName环境
初始化标签的方法
补document.write方法
补document.getElementById
补cookie存取
创建Plugin对象
创建插件数组
创建mimeType
创建mimetypeArray
pycharm浏览器代码联调
浏览器插件补齐
浏览器插件属性方法补齐
addEventListener事件补齐
补setTimeout事件
补clearTimeout事件
获取浏览器鼠标轨迹
node获取轨迹加密结果
补环境流程总结
滑块处理
JS逆向滑块的基本思路
51滑块图片请求
51滑块图片混淆还原思路
51滑块图片混淆还原
51滑块模拟发包
51滑块全流程
FK滑块算法分析
FK滑块图片请求
FK滑块轨迹vi生成
FK滑块轨迹发包
FK滑块轨迹伪造
YP滑块算法分析
YP滑块设备指纹算法
YP滑块加密算法还原
YP滑块图片请求
YP滑块轨迹伪造
YP滑块py数组传参js
JS逆向进阶
补环境框架实战ths_cookie
补环境实战某数扣代码
补环境实战补某数DOM
补环境实战某数环境缺失
补setInterval异步环境
补某数Promise环境
补某数cookie生成环境
某数后缀生成定位
补某数后缀环境
某音乐signature
扣x乎webpack代码
精简webpack函数
某验加密定位
某验参数
某验轨迹加密
某验加密参数
某验w值生成
安卓逆向工程师
安卓基础
逆向环境
安卓逆向设备推荐
AndroidStudio的安装与配置
刷机前置知识
刷机详解
pixel6刷机注意事项
pixel6刷入KernelSU
jadx的使用
GDA的使用
jeb的使用
adb工作原理
adb常用命令
查看包名的几种方式
logcat
安卓历史版本
apk中的常见文件
安卓系统架构
Linux常用命令
Linux权限
安卓开发入门
安卓常见目录
安卓开发入门
AndroidStudio工程目录结构
安卓程序执行入口
硬编码的定位
Button_Log
Toast_EditText
编译release版本的app
安卓逆向入门
安卓逆向案例1(分析)
frida环境搭建
frida-server的配置
frida-server配置常见的几个问题
安卓逆向案例1(hook)
安卓逆向案例1(主动调用)
安卓逆向案例1(翻译)
hook与frida介绍
安卓逆向案例2(hook)
安卓逆向案例2(知识点扩充)
安卓逆向案例2(抠代码)
常规WiFi代理抓包
Charles+socksdroid抓取HTTP数据
Charles+socksdroid抓取HTTPS数据
HttpCanary的安装与配置
lamda的安装与使用
定制系统的自动抓包功能
eCapture的使用
安卓逆向案例3(分析)
安卓逆向案例3(hook)
安卓逆向案例3(算法复现)
算法推理
算法推理的原理
算法推理的简单实现
算法推理的使用
Java层逆向
Java语言详解
Java入门
JDK的安装与配置
Java语言特点
第1个Java程序
Java语言的基础组成
注释
IDEA的安装与配置
转义字符
Java语法基础
变量
数据类型
整数类型
浮点类型
字符型
布尔型
自动类型转换
强制类型转换
关键字和保留字
标识符
常量
算术运算符
算术运算符练习
赋值运算符
关系运算符
逻辑运算符
逻辑运算符练习
三元运算符
运算符优先级
进制与位运算符
进制转换
Hex编码
if语句
switch语句
while循环
for循环
break与continue
数组
数组遍历
值传递与引用传递
数组练习
10进制转16进制代码实现
面相对象
类和对象
对象创建过程
方法的定义和调用
方法的返回值和参数
方法传参机制
static
练习
重载
可变参数
构造器
变量作用域
this
包
访问修饰符
封装
继承
父类构造器
super
继承练习
方法重写
代码块
多态
动态绑定机制
equals
toString
final
抽象类
什么是接口
接口细节
成员内部类
静态内部类
局部内部类
匿名内部类
枚举类
枚举类相关方法
注解
try-catch
throws与throw
包装类
字符串
字符串方法
字符串编码
StringBuffer
Arrays.sort
Arrays和System
Biglnteger
集合
集合
Collection
List
List的遍历
ArrayList
Vector
双向链表
HashSet
数组链表
HashSet练习
LinkedHashSet
Map接口的特点
Map接口常用方法
HashMap的遍历
Hashtable
Properties
TreeSet
TreeMap
Collections工具类
泛型
泛型入门
泛型细节
自定义泛型类
自定义泛型接口
自定义泛型方法
泛型通配符
Properties读配置文件
反射
快速入门
Class的获取方式
哪些有Class类对象
反射创建对象
反射操作属性
反射操作方法
Class类对象的其他方法
打印类的结构信息
密码学Java
Hex编码详解
Base64编码
MD5算法
SHA算法
MAC算法
DES算法
DES算法细节
DESede算法
AES算法
关于填充方式的补充
RSA加解密
RSA细节
RSA密钥的转换
RSA_Hex加解密
多种加密算法的常见结合套路
数字签名算法
各类安卓app逆向
关键代码快速定位
app算法分析流程
app的简单防护(字符串加密)
app的简单防护(反射调用相关类)
关键代码快速定位
定制系统的代码定位功能使用
frida的使用详解
fridaAPI(静态方法和实例方法的hook)
fridaAPI(函数参数和返回值的修改)
fridaAPI(构造方法的hook)
fridaAPI(对象参数的构造与修改)
fridaAPI(HashMap的打印)
fridaAPI(重载方法的hook)
fridaAPI(hook所有重载方法)
fridaAPI(主动调用Java函数)
fridaAPI(获取和修改类的字段)
fridaAPI(内部类与匿名类的hook)
fridaAPI(枚举所有已加载的类与枚举类的所有方法)
fridaAPI(hook类的所有方法)
baksmali与smali的使用
fridaAPI(dex注入)
fridaAPI(写文件_sd卡权限)
fridaAPI(Java.cast)
fridaAPI(Java.array)
fridaAPI(Object数组的构建_可变参数)
fridaAPI(Arraylist的主动调用)
让hook只在指定函数内生效
hook定位接口的实现类
hook定位抽象类的实现类
frida.exe的使用
frida连接多设备多端口
自吐算法脚本开发
脚本开发(工具函数的封装)
脚本开发(各类算法通杀hook)
自吐算法演示
逆向实战
某app逆向实战(不脱壳逆向算法)
某app逆向实战(不脱壳去除更新弹窗)
某app逆向实战(去除强制更新)
某app逆向实战(去除更新弹窗)
某app逆向实战(提交数据乱码的定位方法)
某app逆向实战(非标准算法还原)
某app逆向实战(不脱壳绕过证书检测)
某app逆向实战(so初探)
混淆函数的hook方法
H5的app逆向实战(远程调试)
H5的app逆向实战(JS与Java交互)
frida的Java层hook替代方案(打印所有被调用函数和参数)
frida的Python库使用
frida的Python库使用(包名附加)
frida的Python库使用(pid附加)
frida的Python库使用(spawn方式启动)
frida的Python库使用(连接非标准端口和多个设备)
frida与Python的交互(send)
frida与Python的交互(recv)
frida的rpc远程调用
frida算法转发
so层逆向
C语言基础
C语言介绍
IDE的安装与配置
CLion的安装与配置
Xcode
Xcode的安装
Xcode创建第一个C工程
Xcode配置简介
添加和删除target
第一个C程序
第一个C程序(注释)
第一个C程序(主函数)
第一个C程序(其他细节)
变量与类型
变量
printf函数
变量(其他细节)
交换两个变量的几种方式
变量命名规范
自动类型转换
运算符
算术运算符
算术运算小案例
复合赋值运算符
比较运算符
自增运算符
逗号表达式
逻辑运算符
逻辑运算小案例
运算符优先级
运算符优先级小案例
判断和循环语句
if语句
变量作用域
ifelse
三目运算符
ifelseif
if语句使用小案例
switch语句
if和switch的选择
if和switch的小案例
程序调试
while循环
死循环
循环案例
break与continue
dowhile
for循环
嵌套循环
位运算
位运算小案例
进制
二进制转十六进制
位与
位或
位异或
位移
位运算应用
int的修饰
无符号数
数组
数组
数组使用注意事项
数组初始化
数组在内存中的存储形式
数组的小案例
数组反转
字符串
符数组
字符串长度的计算
字符串相关函数
函数
函数的定义和调用
函数的声明
函数参数
函数返回值
预处理指令
#define定义常量和函数
#include
全局变量、局部变量、静态变量、静态函数
全局变量
静态变量和静态函数
全局变量和局部变量的异同
各种指针、内存操作
指针入门
两种重要的运算符
指针常见错误
指针与const
内存中的五个区域
指针与字符串
数组指针
中括号的本质
函数参数的值传递
函数参数的地址传递
C语言中的常见写法
内存操作(malloc)
内存操作注意事项
内存操作(calloc与realloc)
指针作为函数返回值
函数指针
C语言中的Hex编码
指针练习
多级指针
结构体
结构体
结构体数组
结构体指针
结构体嵌套
结构体作为函数参数
结构体作为返回值
匿名结构体_typedef
NDK开发
第一个NDK工程
NDK介绍
NDK工程与纯Java工程的区别
第一个NDK工程
so中常用的Log输出
NDK多线程
NDK多线程初探
NDK多线程传参
NDK多线程取返回值
JNI_OnLoad
JavaVM
JNIEnv
so相关知识点
so相关的几个概念
so函数注册
异常处理
多个cpp文件编译成一个so
编译多个so
so路径的动态获取
so之间相互调用
通过jni操作Java的各种方式
通过jni创建Java对象
通过jni访问Java属性
通过jni访问Java数组
通过jni访问Java方法
通过jni访问Java父类方法
内存管理(局部引用)
内存管理(全局引用)
子线程中获取Java类
init与initarray
onCreateNative化
ARM汇编
IDA的基本使用
ARM汇编介绍
ARM32、ARM64寄存器
cemu的安装与使用
寻址方式
ARM32、ARM64栈寻址
多寄存器寻址
ARM32、ARM64读写PC寄存器
MOV指令
任意立即数放入寄存器
指令后缀
条件执行后缀
全局资源定位
调用约定
函数的栈帧
汇编C逆向(循环、数组、if、switch、结构体)
汇编C逆向(循环)
汇编C逆向(数组)
汇编C逆向(if语句)
汇编C逆向(switch语句)
汇编C逆向(结构体)
ARM32与ARM64的区别总结
汇编花指令案例(JUMPOUT、asm等)
安卓so逆向
so逆向入门
实战(so逆向分析)
枚举各种
hook导出函数
hook任意函数
ARM32地址的计算
实战(sohook)
frida在so中的使用
修改数值参数和返回值
内存读写
修改字符串参数
获取指针参数返回值
修改so函数代码
hook_dlopen
so层主动调用任意函数
hooklibc读写文件
替换函数
hook_pthread_create
二级指针的构造
jni函数的hook
主动调用jni函数
so层打印函数栈
inlineHook
jni函数快速定位
如何确认native函数注册在哪个so
jni静态注册源码分析
快速定位jni静态注册函数
jni动态注册源码分析
快速定位jni动态注册函数
System.loadLibrary源码分析
hook_initarray
inlinehook
inlinehook(获取so基址)
inlinehook_dlsym
inlinehook_RegisterNatives
各种逆向实战
so逆向实战(frida替代方案1)
so逆向实战(frida替代方案2)
sohook代码封装
so逆向实战
unidbg模拟执行so
unidbg入门
unidbg介绍
入门案例
通过符号寻找函数地址的过程
对传入的参数进行包装的过程
入门案例
处理so调用系统Java类
处理so调用其他so
入门案例3
通过符号调用函数
通过偏移调用函数_内存读写
unidbg hook的使用
unidbg中的hook
hookzz.wrap
hookzz.instrument
hook入门案例
hookzz.replace
原生UnicornHook
打印调用栈
unidbg中的动态调试
监控内存读写
traceCode
处理so调用自写Java类
unidbg多线程
新版unidbg补充
unidbg实战案例
安卓逆向进阶
MD5算法细节
C实现的MD5算法的使用
MD5算法细节(明文的处理)
字节序
MD5算法细节(初始化常量)
MD5算法细节(MD5Transform)
MD5代码实现详解(明文的处理)
MD5代码实现详解(结果的处理)
MD5代码实现详解(MD5Transform)
IDA中的MD5
IDA的常用操作
魔改MD5逆向实战
魔改MD5逆向实战
SHA算法细节
SHA1算法细节
SHA1代码实现详解
哈希算法的识别
魔改SHA1逆向实战
魔改SHA256逆向实战
Hmac算法细节
HmacMD5算法介绍
HmacMD5算法细节
HmacMD5算法实现详解
DES算法细节
DES算法细节(子密钥生成)
DES算法细节(明文的运算)
DES的实现源码分析
DES的魔改
加密模式与填充方式
分组加密的填充
分组加密的模式(ECB)
分组加密的模式(CBC)
分组加密的模式(其他)
3DES算法细节
AES算法细节
AES算法细节(密钥编排)
AES算法细节(加密运算)
AES查表法详解
openssl的aes实现
白盒算法
白盒加密介绍
从轮密钥推导主密钥
差分故障攻击原理
逆向实战
白盒AES逆向实战
白盒AES_CBC算法逆向实战(填充方式)
白盒AES_CBC算法逆向实战(iv向量)
白盒AES_CBC算法逆向实战(密钥还原)
逆向分析_OLLVM还原_绕过frida检测
各种frida检测的绕过
iOS逆向工程师
C语言基础
C语言介绍
IDE的安装与配置
CLion的安装与配置
Xcode
Xcode的安装
Xcode创建第一个C工程
Xcode配置简介
添加和删除target
第一个C程序
第一个C程序(注释)
第一个C程序(主函数)
第一个C程序(其他细节)
变量与类型
变量
printf函数
变量(其他细节)
交换两个变量的几种方式
变量命名规范
自动类型转换
运算符
算术运算符
算术运算小案例
复合赋值运算符
比较运算符
自增运算符
逗号表达式
逻辑运算符
逻辑运算小案例
运算符优先级
运算符优先级小案例
判断和循环语句
if语句
变量作用域
ifelse
三目运算符
ifelseif
if语句使用小案例
switch语句
if和switch的选择
if和switch的小案例
程序调试
while循环
死循环
循环案例
break与continue
dowhile
for循环
嵌套循环
位运算
位运算小案例
进制
二进制转十六进制
位与
位或
位异或
位移
位运算应用
int的修饰
无符号数
数组
数组
数组使用注意事项
数组初始化
数组在内存中的存储形式
数组的小案例
数组反转
字符串
符数组
字符串长度的计算
字符串相关函数
函数
函数的定义和调用
函数的声明
函数参数
函数返回值
预处理指令
#define定义常量和函数
#include
全局变量、局部变量、静态变量、静态函数
全局变量
静态变量和静态函数
全局变量和局部变量的异同
各种指针、内存操作
指针入门
两种重要的运算符
指针常见错误
指针与const
内存中的五个区域
指针与字符串
数组指针
中括号的本质
函数参数的值传递
函数参数的地址传递
C语言中的常见写法
内存操作(malloc)
内存操作注意事项
内存操作(calloc与realloc)
指针作为函数返回值
函数指针
C语言中的Hex编码
指针练习
多级指针
结构体
结构体
结构体数组
结构体指针
结构体嵌套
结构体作为函数参数
结构体作为返回值
匿名结构体_typedef
OC语言基础
OC概述
第一个OC程序
OC数据类型
对象属性
对象方法
isa指针
多文件开发
对象作为参数、返回值、属性
OC中的static
类方法
self
封装、继承、多态
万能指针
动态类型检测
description方法
构造方法
点语法
@property
MRC和ARC
分类
block
协议protocol
常用类的相关方法
NSString
NSArray
NSNumber
NSDictionary
NSFileManger
密码学iOS
第一个iOS工程
密码学介绍
Hex、Base64编码
消息摘要算法
MD5、SHA、Hmac的使用
对称加密算法
DES、AES加密的使用
非对称加密算法
RSA加解密
多种加密算法常见结合套路
ARM汇编
IDA的基本使用
ARM汇编介绍
ARM32、ARM64寄存器
cemu的安装与使用
寻址方式
ARM32、ARM64栈寻址
多寄存器寻址
ARM32、ARM64读写PC寄存器
MOV指令
任意立即数放入寄存器
指令后缀
条件执行后缀
全局资源定位
调用约定
函数的栈帧
汇编C逆向(循环、数组、if、switch、结构体)
汇编C逆向(循环)
汇编C逆向(数组)
汇编C逆向(if语句)
汇编C逆向(switch语句)
汇编C逆向(结构体)
ARM32与ARM64的区别总结
汇编花指令案例(JUMPOUT、asm等)
iOS逆向
iOS逆向介绍
测试机推荐
越狱与巨魔
一键刷机
越狱介绍
Checkra1n越狱
Palera1n越狱
巨魔商店的安装和使用
Dopamine越狱
iOS逆向基础
Charles抓包
VPN抓包
Python的安装和删除
frida的安装
frida代码提示配置
ssh的使用
常用命令
iOS系统常见目录
ipa常见组成结构
文件权限
iphone配置指定版本fridaserver
快速入门
sslpinning的绕过
frida-trace的使用
快速入门案例(算法分析)
快速入门案例(算法复现)
砸壳
IDA的安装
frida使用(主动调用OC方法)
快速入门案例(frida_hook_oc)
frida hook OC方法
frida使用(OC类方法_对象方法的hook)
frida使用(打印函数栈)
frida使用(主动调用OC方法)
frida使用(修改参数和返回值)
frida读写内存
frida使用(NSData的构造)
frida使用(NSArray的构造)
frida使用(NSDictionary的构造)
frida使用(带Block参数的函数主动调用)
frida使用(替换OC方法)
frida使用(hook_block)
批量hook方法
frida写文件
frida-tools的使用
frida-server自定义端口
关键代码快速定位(OC)
算法转发
frida的Python库(进程名附加)
frida的Python库(pid附加)
frida的Python库(spawn启动进程)
frida的Python库(连接非标准端口)
frida与python的交互(send)
frida与python的交互(recv)
frida的rpc
frida算法转发
frida hook C方法
frida使用(枚举各种符号)
frida使用(模块地址的获取)
frida使用(通过计算地址来hook_OC方法)
frida使用(hook_C函数)
frida使用(获取指针参数返回值)
frida使用(修改字符串参数)
frida使用(主动调用任意函数)
frida使用(替换C函数)
frida使用(批量hook_C函数)
frida使用(inlinehook)
逆向实战
某哔实战案例(sign)
某哔实战案例(device_meta)
逆向实战案例(某fc)
逆向实战案例(mcd)
逆向实战案例(SHA1_RSA)
逆向实战案例(公钥的提取)
逆向实战案例(RSA)
双向验证的抓包
基本通杀的hook抓包
某app逆向实战(通过弹窗定位代码)
某app逆向实战(HTTP2.0介绍)
某app逆向实战(提交数据乱码的定位)
某app逆向实战(openssl_AES)
某app逆向实战(openssl_RSA)
某app逆向实战(补充和frida_spawn)
某app逆向实战(魔改md5)
双向验证抓包案例_证书的dump
H5的app逆向方法
某国外案例frida检测的绕过
小程序逆向
小程序开发
小程序开发配置
小程序项目文件
小程序核心文件
小程序页面入门
微信小程序的跳转实现
微信小程序循环判断语句
微信小程序数据绑定
微信小程序事件绑定
微信小程序Python后端
微信小程序构造GET和POST
微信小程序PC端WX提包反编译
某足球小程序编译修复和抓包请求
修复企某查小程序编译错误
Hook微信小程序授权码原理
Hook企某查小程序过授权码
修复某丰快递小程序编译错误
Hook过某快递授权码
分包丢失修复
某讯新闻小程序修复
微信小程序appid、openid和unionid
某新闻小程序openid参数逆向
微信小程序云开发项目结构
微信小程序云数据库操作
微信小程序云函数调用和传参
微信小程序云函数抓包
webpack打包小程序参数逆向
快x漫画小程序修复和爬取
x品会小程序修复
x品会JS参数逆向
验证码识别
pytorch深度学习环境配置
pytorch张量Tensor
Tensor类型转化
Tensor算术运算
pytorch广播机制
整数余数算术运算
pytorch和统计学函数
pytorch随机抽样
pytorch张量裁剪
pytorch之yolov环境搭建
yolo识别图片
简化yolo识别函数
yolo标注和训练
通用验证码识别
训练环境配置
验证码训练
服务接口搭建
售后服务
视频、课件、环境、PPT、交流群、1v1答疑
课程试看
https://space.bilibili.com/534838862
课程购买
开课时间:2025.02.13
联系小肩膀VX:xiaojianbang8888,QQ 285092564
整套逆向工程师2025,¥6000,开课前¥5500
爬虫版块:¥1500
JS逆向版块:¥1500
安卓逆向版块:¥2000
iOS逆向版块:¥1000
小程序逆向版块:¥1000
验证码识别版块:¥1000
爬虫版块:¥1500
JS逆向版块:¥1500
安卓逆向版块:¥2000
iOS逆向版块:¥1000
小程序逆向版块:¥1000
验证码识别版块:¥1000
购买过同类课程的,可以1折换购同类新课程
支持花呗、信用卡,支持分期、三期免息
购买安卓逆向课程,赠送配套小肩膀定制系统
0 条评论
下一页