课程目录
1 课前准备&工具安装与配置 (16:08)
2 软件中的逆向分析与非官方功能扩展(1) (20:56)
3 软件中的逆向分析与非官方功能扩展(2) (17:06)
4 CPU指令集&最简单的函数&Debug/Release (14:51)
5 剖析C语言中的经典程序-Hello World (16:32)
6 函数的序言、函数的尾声 (07:24)
7 逆向生长的堆栈 (04:04)
8 栈的用途 (25:03)
9 栈的噪音 (16:03)
10 函数与参数 (18:57)
11 整数型数据的指针传递(1) (10:35)
12 整数型数据的指针传递(2) (14:00)
13 整数型数据的指针传递(3) (11:24)
14 整数型数据的指针传递(4) (27:04)
15 函数如何获取参数? (15:48)
16 如何接收函数的返回值? (34:20)
17 用指针做函数的参数 (21:04)
18 被废弃的GOTO语句 (08:00)
19 条件跳转指令(1) (10:38)
20 条件跳转指令(2) (07:01)
21 条件跳转指令(3) (13:54)
22 条件跳转指令(4) (12:11)
23 SWITCH CASE语句(1) (16:05)
24 SWITCH CASE语句(2) (19:32)
25 SWITCH CASE语句(3) (22:33)
26 SWITCH CASE语句(4) (13:00)
27 一个简单的FOR循环 (18:11)
28 复制内存的For循环 (11:22)
29 计算C语言字符串的长度 (12:14)
30 插播:使用VC++ 编译汇编源码文件 (06:27)
31 数学计算指令的替换——乘法 (23:23)
32 数学计算指令的替换——除法(续上) (06:26)
33 FPU:浮点数的乘法和除法 (22:24)
34 FPU:浮点数的参数传递 (10:33)
35 FPU:浮点数大小比较 (06:41)
36 FPU:为何FPU指令用的这么少? (12:02)
37 数组:数组的存储结构 (24:14)
38 数组:缓冲区溢出 (16:07)
39 数组:缓冲区溢出保护 (10:45)
40 数组:字符串指针 (14:46)
41 数组:数组的溢出和溢出保护 (08:23)
42 数组:多维数组 (19:39)
43 数组:二维字符串数组的封装 (08:32)
44 位操作:特定位的操作 (14:36)
45 位操作:特定位的设置和清除 (07:49)
46 位操作:FPU上特定位的设置和清除 (23:35)
47 位操作:位校验 (10:47)
48 线性同余法的伪随机数函数 (10:32)
49 结构体:SYSTEMTIME解析 (11:52)
50 结构体:以数组代替结构体 (06:13)
51 结构体:用malloc来分配结构体的空间 (10:45)
52 结构体:结构体的字段封装 (12:41)
53 结构体:结构体的嵌套 (15:45)
54 结构体:结构体中的位操作 (17:17)
55 结构体:用结构体构建浮点数 (08:31)
56 共用体:生成一个伪随机数 (10:55)
57 共用体:浮点数的机器精度 (04:36)
58 函数指针与回调函数 (14:43)
59 64位数据的处理(1) (15:28)
60 64位数据的处理(2) (17:14)