如果你写过 C 或 C++,却说不清一个函数调用在寄存器层面到底发生了什么;如果你用调试器跟过崩溃现场,但看到反汇编窗口里成片的 mov、lea、call 就想关掉;如果你做安全、做外挂对抗、做漏洞分析或驱动开发,却总在「能跑」和「知道为什么能跑」之间卡着——这门课就是冲着这个缺口来的。
它不谈架构史,也不打算把你培养成写汇编的生产力工具人。它的目标很明确:让你具备读懂编译器产物、并在必要时刻改写它的能力。
先确认你缺的是哪一块
这套资料按三段组织,但三段不是「新手到大神」的线性阶梯,而是三个可独立切入的能力面。你可以先对号入座:
- 写得出代码,但看不懂编译器优化后的结果,尤其是内联、尾调用、寄存器分配之后的形态——补汇编与 ABI 那块。
- 能看懂单条指令,但一串指令连起来就断片,不知道这段在判断什么、操作哪个结构体字段——补逆向分析那块。
- 语法层面都懂,但一遇到 C++ 的虚表、异常表、STL 容器内存布局就发懵——补 C/C++ 与汇编的对应关系那块。
零基础那一部分不是给完全没写过代码的人准备的台阶,它更像一份参照系:把 C/C++ 里那些「语言特性」还原成机器实际要做的事,后面看汇编时才有东西可对照。真正的重点是 x86_64 指令语义、调用约定、栈帧、寄存器用途,以及逆向时怎么从一堆指令里还原出控制流和数据结构。
看完应该能回答的问题
检验是否学进去了,不看能不能默写指令表,看能不能回答这几类问题:
- 一个带参数的函数被调用时,前六个整型参数分别走哪些寄存器;返回值放哪;谁负责恢复栈。
- 编译器把
switch编译成跳转表还是条件链,取决于什么;跳转表在反汇编里长什么样。 - 看到一段循环,怎么判断它是
for、while还是被优化过的do-while。 - 一个 C++ 对象的虚函数调用,在汇编里如何先取虚表指针、再按偏移取槽位;多重继承下偏移为什么会变。
- 怎么用调试器在关键调用点下断、改寄存器或内存,让程序走进你想要的路径。
这些问题答不上来,说明还停在「认得指令」的阶段,没到「读懂逻辑」。
怎么用这套材料,别按顺序硬啃
比较省时间的用法是带着具体目标推进。手上有一个真实的二进制样本,或者自己写一段 C 代码编译出来对比,效果远好于从头到尾刷目录。建议的节奏是:先在汇编部分建立寄存器和栈的直觉,遇到读不懂的编译器行为就回 C/C++ 部分找对照,等能稳定跟下一段函数的完整执行过程,再进逆向部分练静态分析与动态调试的配合。
C/C++ 基础和汇编部分不要割裂看。同一段源码,用不同优化等级编译,得到的汇编差异本身就是最好的练习题。逆向部分则建议配合调试器实操,光看不动手,遇到真实样本时依然会卡在第一步。
适合谁,不适合谁
适合:正在转底层或安全方向、已经有编程基础但缺少机器层视角的人;做漏洞分析、恶意代码分析、协议逆向,需要从二进制里抠逻辑的人;想搞清楚性能问题到底出在哪一层的人。
不太适合:完全没写过代码、想从零学编程的人;只想记几条指令应付面试、不打算动手调试的人。这门内容的上限取决于你愿意在调试器里花多少时间,光看是补不上缺口的。
x86_64架构汇编语言&逆向资源
深入理解x86_64架构与逆向工程
编辑点评
系统学习x86_64汇编语言,结合C/C++基础,掌握软件逆向技术,适合有志于安全领域或底层开发的学习者。
⭐ 编辑推荐
本课程从x86_64架构入手,深入讲解汇编语言,并辅以C/C++基础,帮助学员掌握软件逆向技术。
课程亮点
课程目录
📁 01.C&C++零基础入门计划
01.C&C++零基础入门计划说明.png [493.5 KB]
00.Visual Studio 2022的安装与配置.mp4 [27.3 MB]
04.数据类型概述.mp4 [14.3 MB]
26.内存管理(C++版本).mp4 [24.1 MB]
17.dowhile循环.mp4 [6.3 MB]
21.指针基础.mp4 [22.5 MB]
10.算术运算符.mp4 [10.8 MB]
16.while循环.mp4 [9.1 MB]
30.函数指针与回调函数.mp4 [37.4 MB]
01.第一个C语言程序.mp4 [41.1 MB]
14.ifelse选择语句.mp4 [11.1 MB]
15.switch选择语句.mp4 [9.8 MB]
09.输入与输出.mp4 [17.7 MB]
20.数组.mp4 [28.4 MB]
29.使用指针作为参数和返回值.mp4 [27.6 MB]
19.goto语句.mp4 [6.0 MB]
22.指向一维数组的指针.mp4 [20.8 MB]
13.三目运算符.mp4 [8.6 MB]
06.变量生命周期与整型变量的存储.mp4 [24.5 MB]
12.关系与逻辑运算符.mp4 [15.8 MB]
03.内存的概念.mp4 [9.3 MB]
24.指向多维数组的指针.mp4 [17.6 MB]
18.for循环.mp4 [10.1 MB]
07.浮点型变量的定义与存储.mp4 [31.6 MB]
28.函数基础.mp4 [28.9 MB]
25.内存管理(C版本).mp4 [34.9 MB]
23.指向二维数组的指针.mp4 [20.2 MB]
05.变量与常量.mp4 [11.9 MB]
27.指针数组与二级指针.mp4 [32.4 MB]
11.位运算符.mp4 [17.6 MB]
08.字符与字符串类型变量.mp4 [25.0 MB]
02.进制与位.mp4 [22.4 MB]
📁 03.x86_64软件逆向技术
03.x86_64软件逆向技术资料.png [493.5 KB]
04.字符与字符串类型变量逆向.mp4 [53.1 MB]
20.三目运算符逆向.mp4 [15.0 MB]
08.二维数组逆向.mp4 [28.1 MB]
26.6case的switch语句逆向.mp4 [93.5 MB]
06.常量逆向.mp4 [17.1 MB]
19.赋值运算符逆向.mp4 [21.8 MB]
36.cdecl函数调用约定.mp4 [67.9 MB]
31.循环结构-dowhile循环逆向.mp4 [41.8 MB]
34.continue与break语句逆向.mp4 [21.1 MB]
27.6case缺项的switch语句逆向.mp4 [79.7 MB]
14.基于启动特征定位main函数.mp4 [37.6 MB]
33.goto语句逆向.mp4 [23.6 MB]
38.thiscall调用约定.mp4 [38.3 MB]
05.布尔型变量逆向.mp4 [18.3 MB]
37.stdcall调用约定.mp4 [11.8 MB]
23.多选择ifelse语句逆向.mp4 [53.9 MB]
10.指向变量的指针逆向.mp4 [22.6 MB]
35.函数调用约定基础.mp4 [11.0 MB]
03.浮点型变量逆向.mp4 [34.6 MB]
24.嵌套if语句逆向.mp4 [43.1 MB]
40.数组作为参数的函数逆向.mp4 [37.8 MB]
13.基于功能定位mian函数.mp4 [24.9 MB]
12.基于字符串定位mian函数.mp4 [25.6 MB]
41.使用数组作为返回值的函数逆向.mp4 [15.7 MB]
28.6case单项不连续switch语句逆向.mp4 [56.9 MB]
30.循环结构-while循环逆向.mp4 [48.2 MB]
39.fastcall调用约定.mp4 [36.3 MB]
25.3case的switch语句逆向.mp4 [54.0 MB]
09.多维数组逆向.mp4 [29.3 MB]
01.整型变量逆向.mp4 [32.3 MB]
02.浮点型变量存储.mp4 [26.3 MB]
11.指向数组的指针逆向.mp4 [23.6 MB]
15.算术运算符逆向.mp4 [81.9 MB]
18.逻辑运算符逆向.mp4 [36.4 MB]
29.6case无线表switch语句逆向.mp4 [43.1 MB]
32.循环结构-for循环逆向.mp4 [38.9 MB]
16.位运算符逆向.mp4 [112.0 MB]
07.一维数组逆向.mp4 [23.7 MB]
17.关系运算符逆向.mp4 [28.9 MB]
22.选择结构-ifelse语句逆向.mp4 [56.2 MB]
21.选择结构-if语句逆向.mp4 [54.9 MB]
📁 02.x86_64架构汇编语言
02.x86_64架构汇编语言文档.png [493.5 KB]
03.MOV指令详解.mp4 [40.5 MB]
10.x86汇编调用WindowsAPI.mp4 [41.0 MB]
04.LEA指令详解.mp4 [47.6 MB]
01.寄存器基础.mp4 [152.8 MB]
14.MUL指令详解.mp4 [79.5 MB]
12.ADD指令详解.mp4 [92.0 MB]
02.x86汇编开发框架.mp4 [44.4 MB]
13.SUB指令详解.mp4 [72.4 MB]
18.AND指令详解mp4.mp4 [21.0 MB]
16.INC指令详解.mp4 [23.8 MB]
11.x86内联汇编.mp4 [21.5 MB]
17.DEC指令详解.mp4 [18.2 MB]
15.DIV指令详解.mp4 [33.0 MB]
06.cdecl函数调用约定.mp4 [113.2 MB]
020.XOR指令详解.mp4 [16.9 MB]
09.x86汇编调用C语言库函数.mp4 [24.4 MB]
08.寻址方式.mp4 [70.8 MB]
07.stdcall函数调用约定.mp4 [25.9 MB]
19.OR指令详解.mp4 [14.6 MB]
05.XCHG指令详解.mp4 [19.4 MB]适合人群
- 计算机安全爱好者
- 底层开发工程师
- 逆向工程师
学习收获
祝您学习愉快!
学有所成,前程似锦!





