iOS底层原理班-大神MJ精选

在线播放

1.底层上-逆向

2.底层下-原理

附件下载

课程目录

底层上

01 课程简介

02 学习条件

03 越狱的优点和缺点

04 完美越狱和非完美越狱

05 Cydia

06 必备软件安装

07 代码判断设备是否越狱

08 提高工作效率的工具

09 SSH01 简介

10 SSH02 Mac远端登录到IP

11 SSH03 root、mobile

12 SSL和SSH

13 SSH05 安全连接

14 SSH06 服务器公钥的保存和变更

15 SSH07 客户端认证

16 SSH08远程拷贝 文件权限

17 SSH09 22端口

18 SSH10 USB连接

19 SSH11 usbmuxd01 使用

20 SSH12 usbmuxd01 总结

21 SSH13 sh脚本

22 SSH14 iPhone终端中文输入

23 Cycipt01 基本使用

24 Cycipt02 常用语法

25 Cycipt03 定位登录方法

26 Cycipt04 定位文本输入框

27 Cycipt05 小结

28 Cycript06 封装cy文件

29 Cycript07 exports

30 Cycipt08 全局函数

31 Cycipt09 mjcript

32 Cycipt10 微信练习

33 Reveal

34 ipa的安装

35 逆向APP的思路

36 class dump01 基本使用

37 class dump02 细节

38 代码的编译过程

39 Hopper01 简单使用

40 Hopper02 UIKit伪代码分析

41 遗留问题解决

42 dsc01 简介

43 dsc02 优点

44 dsc03 dyld

45 dsc04 dsc extractor

46 Mach object01 文件类型

47 Mach%20object02 文件类型02

48 Mach%20object03 Universal%20Binary

49 Mach%20object04 基本结构01

50 Mach o object05 基本结构02

51 Mach%20object06 基本结构03

52 Mach%20object07 基本结构04

53 Mach%20object08 dyld

54 答疑交流

55 初识加壳

56 加壳原理

57 脱壳原理

58 LC ENCYPTION INFO

59 脱壳工具01 Clutch

60 脱壳工具02 dumpdecrypted

61 喜马拉雅FM逆向实战01 明确需求

62 喜马拉雅FM逆向实战02 安装theos

63 喜马拉雅FM逆向实战03 配置PATH

64 喜马拉雅FM逆向实战04 source命令

65 喜马拉雅FM逆向实战05 编写tweak代码

66 喜马拉雅FM逆向实战06 总结步骤

67 课程安排说明

68 Tweak练习01 SpringBoard01 分析

69 Tweak练习01 SpringBoard02 编码

70 Tweak练习02 微信01 分析

71 Tweak练习02 微信02 数量

72 Tweak练习02 微信03 返回cell

73 Tweak练习02 微信04 界面调整和退出

74 Tweak练习02 微信05 数据存储

75 Tweak练习02 微信06 加载图片资源

76 Tweak练习02 微信07 宏定义资源路径

77 Tweak原理01 安装过程

78 Tweak原理02 运行过程

79 Tweak原理03 常见疑惑

80 Tweak原理04 复习总结

81 Tweak原理05 从汇编角度分析

82 Tweak细节01 图片资源

83 Tweak细节02 多文件开发01

84 Tweak细节03 多文件开发02

85 Tweak细节04 release版本

86 Tweak练习03 内涵段子01 获取appid

87 Tweak练习03 内涵段子02 去除首页广告

88 Tweak练习03 内涵段子03 去除评论广告

89 Tweak练习03 内涵段子04 其他思路

90 Tweak练习03 内涵段子05 去除new标签和刷新按钮

91 Logos语法01 %25ctor、%25dtor

092 make%20package补充

093 %25new补充

094 腾讯视频01 MJAppTools

095 腾讯视频02 去除启动页面广告

096 腾讯视频03 去除视频广告

097 命令行工具01 main函数处理

098 命令行工具02 功能分析

099 命令行工具03 读取magic

100 命令行工具04 参数

101 命令行工具05 权限

102 命令行工具06 MJAppTools分析

103 课程说明

104 logify01 复习

105 logify02 %log

106 logify03 代码转换

107 logify04 查看打印信息

108 logify05 补充

109 动态调试01 Xcode动态调试的原理

110 动态调试02 动态调试任意APP的原理

111 动态调试03 debugserver环境搭建

112 动态调试04 lldb连接debugserver

113 答疑交流

114 LLDB01 简介

115 LLDB02 命令格式、help

116 LLDB03 expression

117 LLDB04 thread

118 LLDB05 流程控制

119 LLDB06 指令级别的命令

120 LLDB07 代码断点

121 LLDB08 断点命令

122 LLDB09 内存断点

123 LLDB10 模块查找

124 ASLR01 代码断点的注意点

125 ASLR02 MachO的虚拟内存分段

126 ASLR03 FileOffset、FileSize

127 ASLR04 小结、讨论

128 ASLR05 ASLR简介

129 ASLR06 获得函数的真实内存地址

130 ASLR07 函数在MachO文件中的位置

131 ASLR08 总结

132 ASLR09 全局变量在MachO文件中的位置

133 ASLR10 答疑

134 ARM64汇编01

135 ARM64汇编02 通用寄存器

136 ARM64汇编03 mov指令

137 ARM64汇编04 add、sub指令

138 ARM64汇编05 答疑

139 ARM64汇编06 cmp指令、cpsr寄存器

140 ARM64汇编07 b指令

141 ARM64汇编08 带条件的b指令 MP4

142 ARM64汇编09 带if else反汇编

143 ARM64汇编10 bl指令

144 ARM64汇编11 答疑

145 ARM64汇编12 ldr指令

146 ARM64汇编13 ldur指令

147 ARM64汇编14 ldp指令

148 ARM64汇编15 str、stur、stp指令

149 ARM64汇编16 wzr、xzr寄存器

150 ARM64汇编17 pc、lr寄存器

151 ARM64汇编18 bl指令的本质

152 ARM64汇编19 函数的分类

153 ARM64汇编20 叶子函数

154 ARM64汇编21 非叶子函数01 开辟栈空间

155 ARM64汇编22 非叶子函数02 恢复堆栈平衡

156 ARM64汇编23 答疑

157 ARM64汇编24 OC方法内存断点

158 ARM64汇编25 调试OC方法

159 ARM64汇编26 用debugserver启动APP

160 ARM64汇编27 破解命令行程序

161 ARM64汇编28 破解iOS程序

162 iOS签名机制01 了解签名

163 iOS签名机制02 加密解密简介

164 iOS签名机制03 对称密码

165 iOS签名机制04 密钥配送问题

166 iOS签名机制05 公钥密码

167 iOS签名机制06 混合密码系统

168 iOS签名机制07 总结

169 iOS签名机制08 单向散列函数01 基本概念

170 iOS签名机制09 单向散列函数02 使用场景

171 iOS签名机制10 数字签名01 基本概念

172 iOS签名机制11 数字签名02 使用流程

173 iOS签名机制12 数字签名03 存在的问题

174 iOS签名机制13 证书

175 iOS签名机制14 总结

176 iOS签名机制15 iOS签名机制01 具体流程

177 iOS签名机制16 iOS签名机制02 解释流程

178 iOS签名机制17 iOS签名机制03 具体步骤

179 iOS签名机制18 iOS签名机制04 总结

180 iOS签名机制19 iOS签名机制05 答疑

181 Category的本质01 基本使用

182 Category的本质02 分类的底层结构

183 Category的本质03 加载分类方法

184 Category的本质04 处理分类方法01

185 Category的本质05 处理分类方法02

186 Category的本质06 load

187 Category的本质07 initialize

188 Category的本质08 load和initialize的调用区别

189 Category的本质09 答疑

190 内存分配对齐01 现象观察

191 内存分配对齐02 源码分析

192 课程安排

193 iOS签名机制20 重签名01 情景分析

194 iOS签名机制21 重签名02 基本操作

195 iOS签名机制22 重签名03 GUI工具

196 iOS签名机制23 重签名04 tweak原理分析

197 iOS签名机制24 重签名05 动态库

198 iOS签名机制25 重签名06 其他APP

199 iOS签名机制26 重签名07 Bug修复

200 LLVM 01

201 LLVM 02

202 LLVM 03

203 LLVM 04

204 代码混淆01 简介

205 代码混淆02 实践

206 代码混淆03 ios class guard

207 代码混淆04 字符串加密

208 结束语

底层下

001 OC对象的本质01 OC和C C++

002 OC对象的本质02 将OC转换为C C++

003 OC对象的本质03 NSObject的内存本质

004 OC对象的本质04 class getInstanceSize、malloc size

005 OC对象的本质05 回答面试题

006 OC对象的本质06 窥探NSObject的内存

007 OC对象的本质07 Student的本质

008 OC对象的本质08 Student的内存布局

009 OC对象的本质09 更复杂的继承结构

010 OC对象的本质10 属性和方法

011 OC对象的本质11 答疑

012 OC对象的本质12 内存分配注意点

013 OC对象的本质13 alloc的size分析

014 OC对象的本质14 libmalloc源码

015 OC对象的本质15 glibc源码

016 OC对象的本质16 sizeof注意点

017 OC对象的分类01 instance对象

018 OC对象的分类02 class对象

019 OC对象的分类03 meta class对象

020 OC对象的分类04 object getClass内部实现

021 OC对象的分类05 答疑

022 isa和superclass01 isa

023 isa和superclass02 class的superclass

024 isa和superclass03 meta class的superclass

025 isa和superclass04 总结01

026 isa和superclass05 总结02

027 isa和superclass06 isa细节

028 isa和superclass07 class和meta class的结构

029 isa和superclass08 答疑

030 KVO01 基本使用

031 KVO02 存在的疑问

032 KVO03 本质分析

033 KVO04 本质验证

034 KVO05 窥探Foundation

035 KVO06 内部调用流程

036 KVO07 子类的内部方法01

037 KVO08 子类的内部方法02

038 KVO09 总结 答疑

039 KVO10 补充

040 KVC01 基本使用

041 KVC02 设值的原理

042 KVC03 取值的原理

043 Category01 基本使用

044 Category02底层结构

045 Category03源码分析01

046 Category04源码分析02

047 Category05 memmove、memcpy区别

048 Category06答疑

049 Cateogry07 load01 基本使用

050 Cateogry08 load02 调用原理

051 Cateogry09 load03 调用顺序

052 Cateogry10 initialize01 基本使用

053 Cateogry11 initialize02 源码分析

054 Cateogry12 initialize03 注意点

055 Cateogry13 load、initialize总结

056 关联对象01 分类添加属性

057 关联对象02 使用字典完善属性

058 关联对象03 使用字典存在的问题

059 关联对象04 基本用法

060 关联对象05 key的用法

061 关联对象06 答疑

062 关联对象07 底层数据结构01

063 关联对象08 底层数据结构02

064 block01 基本认识

065 block02 底层数据结构

066 block03 变量捕获01 auto变量

067 block04 变量捕获02 static变量

068 block05 变量捕获03 全局变量

069 block06 类型01

070 block07 类型02

071 block08 答疑

072 block09 copy

073 block10 对象类型的auto变量01

074 block11 对象类型的auto变量02

075 block12 对象类型的auto变量03

076 block13 block01 修改变量

077 block14 block02 本质

078 block15 block03 细节

079 block16 block04 内存管理01

080 block17 block05 内存管理02

081 block18 block06 forwarding

082 block19 block07 内存管理03

083 block20 block08 内存管理04

084 block21 循环引用01 问题

085 block22 循环引用02 ARC01

086 block23 循环引用03 ARC02

087 block24 循环引用04 MRC

088 block25 总结 答疑

089 Runtime01 简介

090 Runtime02 isa01 简介

091 Runtime03 isa02 需求

092 Runtime04 isa03 取值

093 Runtime05 isa04 设值

094 Runtime06 isa05 位域

095 Runtime07 isa06 共用体

096 Runtime08 isa07 总结

097 Runtime09 isa08 位运算补充

098 Runtime10 isa09 细节

099 Runtime11 方法01 Class的结构

100 Runtime12 方法02 method

101 Runtime13 方法03 Type%20Encoding

102 Runtime14 方法04 cache t

103 Runtime15 方法05 散列表缓存

104 Runtime16 方法06 查看缓存01

105 Runtime17 方法07 查看缓存02

106 Runtime18 objc msgSend01 简介

107 Runtime19 objc msgSend02 消息发送01

108 Runtime20 objc msgSend03 消息发送02

109 Runtime21 objc msgSend04 动态方法解析01

110 Runtime22 objc msgSend05 动态方法解析02

111 Runtime23 objc msgSend06 动态方法解析03

112 Runtime24 objc msgSend07 消息转发01

113 Runtime25 objc msgSend08 消息转发02

114 Runtime26 objc msgSend09 消息转发03

115 Runtime27 objc msgSend10 消息转发04

116 Runtime28 objc msgSend11 消息转发05

117 Runtime29 objc msgSend12 总结

118 Runtime30 super01

119 Runtime31 super02

120 Runtime32 答疑

121 Runtime33 class面试题01

122 Runtime34 class面试题02

123 Runtime35 super面试题01

124 Runtime36 super面试题02

125 Runtime37 super面试题03

126 Runtime38 super面试题04

127 Runtime39 super面试题05

128 Runtime40 答疑

129 Runtime41 LLVM的中间代码

130 Runtime42 API01 类

131 Runtime43 API02 成员变量01

132 Runtime44 API02 成员变量02

133 Runtime45 API02 成员变量03

134 Runtime46 API03 方法01

135 Runtime47 总结

136 Runtime48 API03 方法02

137 Runtime49 API03 方法03

138 Runloop01 基本认识

139 Runloop02 获取RunLoop对象

140 Runloop03 CFRunLoopModeRef

141 Runloop04 CFRunLoopModeRef的成员

142 Runloop05 CFRunLoopObserverRef

143 Runloop06 答疑

144 Runloop07 执行流程图

145 Runloop08 源码分析

146 Runloop09 调用细节

147 Runloop10 休眠的细节

148 Runloop11 NSTimer失效

149 Runloop12 线程保活01

150 Runloop13 线程保活02

151 Runloop14 线程保活03

152 Runloop15 线程保活04

153 Runloop16 答疑

154 Runloop17 线程保活05

155 Runloop18 线程保活06

156 Runloop19 线程的封装01 接口设计

157 Runloop20 线程的封装02 内部实现

158 Runloop21 线程的封装03 C语言方式实现

159 Runloop22 答疑

160 多线程01 基本概念

161 多线程02 gcd01

162 多线程03 gcd02

163 多线程04 gcd03

164 多线程05 gcd04

165 多线程06 面试题01

166 多线程07 GNUstep

167 多线程08 面试题02

168 多线程09 GCD队列组

169 多线程10 安全隐患分析

170 多线程11 OSSpinLock01

171 多线程12 OSSpinLock02

172 多线程13 OSSpinLock03

173 多线程14 答疑

174 多线程15 os unfair lock

175 多线程16 pthread mutex01

176 多线程17 pthread mutex02 递归锁

177 多线程18 自旋锁、互斥锁汇编分析

178 多线程19 pthread mutex03 条件

179 多线程20 NSLock、NSRecursiveLock、NSCondition

180 多线程21 答疑

181 多线程22 遗留问题解决

182 多线程23 NSconditionLock

183 多线程24 SerialQueue

184 多线程25 semaphore01 最大并发数量

185 多线程26 semaphore02 线程同步

186 多线程27 semaphore03 @synchronized

187 多线程28 同步方案性能对比

188 多线程29 自旋锁、互斥锁对比

189 多线程30 atomic

190 多线程31 读写安全01 简介

191 多线程32 读写安全02 pthread rwlock

192 多线程33 读写安全03 barrier async

193 内存管理01 定时器01

194 内存管理02 定时器02

195 内存管理03 定时器03

196 内存管理04 定时器04

197 内存管理05 NSProxy补充

198 内存管理06 GCD定时器01

199 内存管理07 GCD定时器02

200 内存管理08 GCD定时器03

201 内存管理09 内存布局

202 内存管理10 Tagged%20Pointer01

203 内存管理11 Tagged%20Pointer02

204 内存管理12 Tagged%20Pointer03

205 内存管理13 Tagged%20Pointer04

206 内存管理14 MRC01

207 内存管理15 MRC02

208 内存管理16 MRC03

209 内存管理17 MRC04

210 内存管理18 MRC05

211 内存管理19 copy01

212 内存管理20 copy02

213 内存管理21 copy03

214 内存管理22 copy04

215 内存管理23 copy05

216 内存管理24 copy06

217 内存管理25 引用计数的存储

218 内存管理26 weak指针的原理

219 内存管理27 autorelease原理01

220 内存管理28 autorelease原理02

221 内存管理29 autorelease原理03

222 内存管理30 autorelease原理04

223 内存管理31 autorelease原理05

224 内存管理32 RunLoop与autorelease01

225 内存管理33 RunLoop与autorelease02

226 性能优化01 CPU和GPU

227 性能优化02 产生卡顿的原因

228 性能优化03 卡顿优化01 CPU

229 性能优化04 卡顿优化02 GPU

230 性能优化05 卡顿优化03 卡顿检测

231 性能优化06 耗电优化

232 性能优化07 启动优化01 冷启动简介

233 性能优化08 启动优化02 分析

234 性能优化09 安装包瘦身

235 架构设计01 简介

236 架构设计02 MVC Apple

237 架构设计03 MVC 变种

238 架构设计04 MVP

239 架构设计05 MVVM

240 架构设计06 分层架构

241 架构设计07 设计模式简介

242 总结

yf01 OC对象的本质01 概述

yf02 OC对象的本质02 NSObject

yf03 OC对象的本质03 自定义类

yf04 OC对象的本质04 窥探内存结构

yf05 OC对象的本质05 更复杂的继承关系

yf06 OC对象的本质06 内存具体分析

yf07 OC对象的分类01 提问

yf08 OC对象的分类02 instance

yf09 OC对象的分类03 class

yf10 OC对象的分类04 meta class

yf11 isa和superclass01 调用对象方法和类方法的过程

yf12 isa和superclass02 class的superclass

yf13 isa和superclass03 metaclass的superclass

yf14 isa和superclass04 总结

yf15 Class的本质01 判断类对象的类型

yf16 Class的本质02 isa的细节

yf17 Class的本质03 结构分析

yf18 Class的本质04 instanceSize

yf19 Class的本质05 class rw t、class ro t

yf20 Class的本质06 证明isa和superclass的作用

yf21 KVO01 基本使用

yf22 KVO02 存在的疑问

yf23 KVO03 底层实现分析

yf24 KVO04 验证isa和IMP

yf25 KVO05 Foundation中的私有函数

yf26 KVO06 窥探类对象内存中的函数

yf27 KVO07 总结

yf28 KVO08 补充

yf29 OC对象的本质07 面试题补充

yf30 isa和superclass05 补充

RL01 初识RunLoop

RL02 RunLoop对象

RL03 RunLoop的Mode

RL04 RunLoop的运行逻辑01 内部结构

RL05 RunLoop的运行逻辑02 源码分析01

RL06 RunLoop的运行逻辑03 源码分析02

RL07 RunLoop的运行逻辑04 流程图

RL08 RunLoop的运行逻辑05 GCD

RL09 RunLoop的运行逻辑06 总结

最后更新于