这门课解决什么问题

逆向工程的核心能力建立在扎实的 C 语言基础与内存意识之上。很多学习者在看汇编或调试时感到困难,根源往往不是不懂指令,而是对底层数据布局、指针运算和调用约定缺乏直观理解。本课程从 C 语言基础语法切入,系统梳理数据类型、运算符、作用域、函数参数传递、数组与指针的关系,并重点深入结构体内存对齐、共用体、枚举、动态内存管理以及文件操作。通过这些内容,填补从“会写 C 代码”到“理解代码如何在内存中运行”的能力缺口,为后续逆向分析打下坚实基础。

适合什么基础、建议先看哪几块

适合有一定编程经验但缺乏底层视角的学习者,或正在备考相关技术岗位、希望补齐 C 语言底层细节的转岗人员。建议先完成视频 001 至 013,覆盖基本语法、函数机制和指针概念;接着重点学习 014(调用约定)、017 至 019(数组与指针关系)、022 至 025(结构体与内存对齐),这部分是逆向中解读数据结构的关键;随后通过 027 至 031 掌握内存与文件操作,最后结合 032 至 036 的项目实战,理解界面、逻辑与数据存储的完整交互流程。视频 037 至 040 则进一步巩固结构体数组在内存中的排列方式及与汇编步长的关系,适合在掌握基础后回头深化。

学完能独立做什么、资料怎么配合练习

学完本课后,能够独立分析 C 程序的基本结构,理解变量在栈与堆中的存储方式,解读简单结构体与数组的内存布局,并能结合项目实战完成一个具备界面、逻辑处理与文件保存功能的 C 语言程序。练习时应以视频内容为纲,手动复现关键代码,特别要针对指针运算、结构体对齐和项目架构设计进行手写实验,借助断点观察内存变化,从而将理论转化为可验证的动手能力。

课程目录

001.第一个C项目解析.mp4 388.24M
002.进制得本质和计算方式.mp4 235.96M
003.C语言基本数据类型.mp4 236.89M
004.有无符号和变量常量.mp4 220.07M
005.存储类型和类型转换.mp4 165.58M
006.运算符和作用域.mp4 161.84M
007.if判断语句.mp4 88.89M
008.循环 跳转 分支语句.mp4 137.12M
009.函数基本写法.mp4 74.42M
010.局部 全局 静态局部 静态全局变量.mp4 78.43M
011.指针类型和引用类型.mp4 108.91M
012.函数的参数几种形式.mp4 95.68M
013.递归函数和函数指针.mp4 84.15M
014._cdecl _stdcall _fastcall调用约定.mp4 161.47M
015.一维数组.mp4 128.72M
016.二维数组多维数组.mp4 164.45M
017.一维数组跟指针关系.mp4 111.42M
018.二维数组和数组指针 行指针 的关系.mp4 63.98M
019.二维数组和指针数组的关系.mp4 53.25M
020.多字节版本字符串函数调用.mp4 198.48M
021.宽字节版本字符串函数调用.mp4 125.72M
022.结构体得概念和使用.mp4 214.19M
023.共用体的概念和使用.mp4 224.78M
024.枚举概念和使用.mp4 139.99M
025.typedef和内存对齐原则.mp4 175.43M
026.宏的用法和头文件的用法.mp4 157.18M
027.申请内存释放内存.mp4 214.01M
028.打开文件关闭文件.mp4 155.10M
029.游标操作文件结束.mp4 152.58M
030.C语言读文件.mp4 356.55M
031.C语言写文件.mp4 159.96M
032.C项目需求分析和架构设计.mp4 19.25M
033.C项目界面的设计和实现.mp4 103.12M
034.C项目界面和逻辑的交互.mp4 204.79M
035.C项目数据和逻辑处理.mp4 196.64M
036.C项目文件保存和总结.mp4 118.99M
037.结构体在内存中的排列方式.mp4 154.51M
038.结构体数组在内存中的排列方式.mp4 113.66M
039.汇编下数组和步长的本质关系.mp4 163.45M
040.结构体数组的好处和实现.mp4 144.27M
041.从逆向的角度遍历数组.mp4 101.56M
042.链表的概念和需求.mp4 90.74M
043.链表的初始化和添加.mp4 236.18M
044.链表的遍历和删除.mp4 136.98M
045.汇编指令lea和mov的区别.mp4 95.43M
046.链表在内存中的表现形式.mp4 273.06M
047.汇编下遍历链表.mp4 150.65M
048.从逆向角度用指针遍历链表.mp4 89.12M
049.队列和栈的概念和结构.mp4 69.81M
050.选择排序算法的概念和代码实现.mp4 197.70M
051.冒泡排序算法的概念和代码实现.mp4 147.44M
052.插入排序算法的概念和代码实现.mp4 205.52M
053.二叉树的基本概念和结构.mp4 43.87M
054.二叉查找树的创建和遍历.mp4 468.57M
055.二叉查找树在内存中的表现形式.mp4 76.83M
056.从汇编的角度分析游戏二叉树.mp4 243.33M
057.如何通过指针去遍历游戏二叉树.mp4 253.59M
058.类的概念基本定义.mp4 182.84M
059.this指针和构造函数及其初始化列表.mp4 229.29M
060.类的限制符.mp4 67.31M
061.对象的定义和使用.mp4 81.75M
062.析构函数.mp4 126.63M
063.拷贝构造函数.mp4 95.42M
064.浅拷贝和深拷贝的区别mp4.mp4 131.52M
065.重载运算符函数.mp4 206.19M
066.类型转换函数.mp4 51.97M
067.对象的内存和汇编下的this传递.mp4 132.77M
067.静态成员变量和静态成员函数-1.mp4 138.61M
068.类的静态成员变量和静态成员函数.mp4 236.24M
069.继承的概念和使用.mp4 156.49M
070.public限制符对继承的影响.mp4 59.86M
071.protected限制符对继承的影响.mp4 36.30M
072.private限制符对继承的影响.mp4 70.80M
073.子类是如何调用父类的构造函数.mp4 85.11M
074.继承下构造函数和析构函数的调用顺序.mp4 50.51M
075.多继承下的构造析构函数的调用顺序.mp4 71.28M
076.多态的概念以及静态多态的使用.mp4 74.42M
077.虚函数的概念和使用.mp4 113.33M
078.虚函数表的概念和作用.mp4 133.38M
079.虚函数表的遍历和查看.mp4 140.50M