先搞清楚这门课填的是哪个坑
很多人看汇编,是卡在某个具体问题上去查资料的:反编译出来一段看不懂的跳转、程序崩在某个寄存器上、想改一个软件的判断逻辑却不知道从哪下手、面试被问函数调用时栈里发生了什么。这些问题看起来零散,其实都指向同一块地基——x86_64 的指令、寄存器和调用约定。零散地搜索,你得到的是一堆孤立结论;系统过一次,你建立的是能从任意一行反汇编往上推的能力。这门课针对的就是后者。
需要注意,它假设你已经能用 C 或 C++ 写出能跑的程序。如果你连指针、数组在内存里的排布、结构体对齐都还说不清楚,那先补 C/C++ 部分,否则看汇编只会变成背指令表——记住了 mov 和 lea 长什么样,但不知道编译器为什么这么生成。资料包里单独有 C/C++ 的入门部分,就是为这个前提准备的。
x86_64 汇编:不是背指令,是读懂编译器
这门课讲的是 64 位下的那一套东西:通用寄存器从 32 位的 eax 系列扩展到 rax 系列、新增的 r8~r15、RIP 相对寻址、调用约定从 32 位时代的压栈传参改为寄存器传参(Windows 和 System V 还不一样)。这些不是细节,是决定你看反汇编时能不能对上号的关键。
学的时候建议带着一个问题:这段 C 代码为什么被编译成这几条指令。比如一个简单的结构体成员访问、一次函数调用、一个 switch,编译器在 64 位下会怎么处理参数、怎么保存返回地址、怎么对齐栈帧。能把 C 到汇编的对应关系走通,才算真的会看汇编,而不是认得指令。
从汇编到逆向:中间差的是工具和耐心
会读汇编和做逆向是两件事。逆向多出来的部分是:用调试器跟踪运行时状态、看内存和寄存器随指令怎么变、识别编译器优化后的代码形态、把反汇编结果还原成能理解的逻辑。课程里的逆向部分对应的就是这一段,通常从静态分析和动态调试两条线切入。
这部分最容易被低估的是练习量。逆向是手上的活,看懂一个例子不等于自己能独立分析一个二进制。建议每学完一类结构(循环、分支、函数调用、字符串处理),就自己找个小程序编译出来,对着反汇编逐行解释它的行为,再和源码核对。这个过程枯燥,但它是唯一能把知识变成能力的方式。
看完应该能回答这些问题
- 一个函数被调用时,从参数传递到返回,寄存器和栈分别发生了什么?
- 同样的 C 代码,在 32 位和 64 位下编译出来的汇编差在哪里,为什么?
- 编译器开启优化后,哪些熟悉的代码形态会变得认不出来,怎么识别?
- 面对一段没有源码的反汇编,你打算从哪一步开始还原它的逻辑?
- 调试器里看到的某个寄存器值和你预期不一致时,你会怎么排查?
如果这些问题你现在答不上来或者答得不踏实,那这门课就是给你补这块的。如果已经能流畅回答,说明你缺的不是这门课,而是更细分的专题,别在这里浪费时间。
适合谁,不适合谁
适合的是:能写 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]适合人群
- 计算机安全爱好者
- 底层开发工程师
- 逆向工程师
学习收获
祝您学习愉快!
学有所成,前程似锦!





