这门课解决什么问题
很多人学了几年C语言,写代码时依然对指针、内存布局、结构体这些底层概念一知半解。遇到内存泄漏、指针越界、结构体对齐等问题,要么靠经验蒙混,要么只能绕路。这门课从进制运算、指针、数组、字符串函数、结构体、共用体、枚举、内存管理、文件操作一路讲下来,目标是让你真正理解C语言底层的运行方式,而不是只会写语法。适合什么基础
适合有一定编程基础、想深入理解底层原理的人。如果你连函数调用、变量作用域都不清楚,建议先补基础语法再回来;如果你已经能写简单程序,但遇到指针和内存问题时总卡住,这门课正好对症下药。资料从基本语法循序渐进,不要求扎实的数学基础,但需要你愿意动手写代码。建议先看哪几块
优先看指针类型与引用类型、结构体和共用体、内存申请与释放这三块。指针是C语言核心,理解它才能看懂逆向分析中的内存布局;结构体和共用体是数据组织的基础,文件操作和字符串函数都依赖它们;内存管理是实际工作中最容易出问题的环节,看懂后写程序更有底气。后面的函数调用约定、数组与指针关系、多字节字符串函数等可按顺序跟进。学完能独立做什么
学完可以独立处理C语言底层开发中的常见场景:手动管理内存避免泄漏、用指针操作数据结构、处理文件读写、理解二进制数据的内存布局。如果你从事逆向工程方向,这些是直接可用的基础;日常开发中偶尔遇到底层问题,也能快速定位解决。资料怎么配合练习
资料以视频讲解为主,每个模块对应概念和实操内容。建议看完一个模块就动手写一个小程序验证,比如看完指针就写简单的指针运算,看完结构体就构造并访问一个结构体。资料包里的文件操作、字符串函数等模块,建议配合实际文件和字符串做练习,加深理解。不用追求速度,每个模块消化完再进入下一个。课程目录
课程目录225 集
- 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
- 080.虚函数在汇编下的表现.mp4 105.62M
- 081.重载函数.mp4 54.18M
- 082.C++命名空间及其标准库介绍.mp4 68.47M
- 083.字符串类的常见用法.mp4 177.69M
- 084.字符串之字串的操作.mp4 242.65M
- 085.动态数组之vector容器.mp4 151.29M
- 086.迭代器下的vector容器.mp4 181.12M
- 087.容器之list.mp4 121.66M
- 088.容器之队列queue.mp4 70.66M
- 089.容器之栈stack.mp4 58.28M
- 090.容器之map.mp4 184.49M
- 091.C++异常.mp4 120.88M
- 092.C++文件流操作打开和关闭文件.mp4 119.02M
- 093.C++文件流写文本文件.mp4 50.06M
- 094.C++文件流读文本文件.mp4 75.94M
- 095.C++文件流写二进制文件.mp4 68.35M
- 096.C++文件流读二进制文件.mp4 63.00M
- 097.C++申请内存new和释放内存delete.mp4 83.93M
- 098.继承下的虚析构.mp4 95.45M
- 099.C++11下的单例模式.mp4 59.85M
- 100.switch状态机.mp4 55.30M
- 101.C++状态机模式.mp4 101.01M
- 102.Win32窗口程序的入口函数.mp4 60.29M
- 103.MessageBox消息框.mp4 100.45M
- 104.Win32窗口的创建和显示.mp4 274.83M
- 105.消息循环和窗口过程.mp4 337.60M
- 106.常见的windows消息.mp4 231.85M
- 107.按钮的创建和消息响应.mp4 284.62M
- 108.按钮文本的设置和获取.mp4 110.33M
- 109.获取控件的ID和句柄.mp4 88.96M
- 110.控件的可见和启用.mp4 77.05M
- 111.对话框资源的创建.mp4 51.34M
- 112.单独显示非模态对话框.mp4 185.17M
- 113.父窗口中创建非模态对话框.mp4 71.37M
- 114.单独创建模态对话框.mp4 92.72M
- 115.父窗口中创建模态对话框.mp4 219.03M
- 116.自定义消息和两种发消息方式.mp4 172.79M
- 117.窗口坐标.mp4 203.62M
- 118.Win32定时器.mp4 225.85M
- 119.MFC项目的创建和架构介绍.mp4 217.51M
- 120.简单的介绍下MFC封装的一些数据类.mp4 256.92M
- 121.MFC添加消息映射函数.mp4 134.04M
- 122.MFC添加自定义消息映射函数.mp4 168.18M
- 123.MFC创建和初始化的回调函数.mp4 169.32M
- 124.MFC模态对话框和结束流程.mp4 81.17M
- 125.MFC非模态窗口和结束流程-1.mp4 136.11M
- 125.MFC非模态窗口和结束流程-2.mp4 149.74M
- 126.MFC按钮和静态文本的添加和使用.mp4 243.34M
- 127.MFC编辑框和选择框的添加和使用.mp4 206.46M
- 128.MFC组合下拉框的添加和使用.mp4 111.84M
- 129.MFC列表框List的添加和使用.mp4 82.60M
- 130.MFC列表框List Control的添加和使用.mp4 257.75M
- 131.MFC标签Tab Control的添加和使用.mp4 292.37M
- 132.MFC菜单的添加和使用.mp4 171.05M
- 133.MFC文件类CFile的操作.mp4 174.43M
- 134.MFC文件类CStdioFile的使用.mp4 101.55M
- 135.MFC文件对话框CFileDialog的使用.mp4 133.58M
- 136.MFC文件查找类CFileFind的使用.mp4 99.87M
- 137.MFC应用程序类的配置文件.mp4 189.86M
- 138.MFC热键的添加和使用.mp4 122.46M
- 139.win32文件夹对话框.mp4 127.73M
- 140.进程和线程的概念.mp4 89.80M
- 141.如何创建一个线程.mp4 424.38M
- 142.如何终止一个线程.mp4 268.68M
- 143.调试模式下的暂停和恢复线程.mp4 158.91M
- 144.安全的暂停和恢复线程.mp4 141.05M
- 145.如何遍历当前进程的所有线程.mp4 163.58M
- 146.如何创建一个进程.mp4 380.23M
- 147.如何以管理员的方式创建进程.mp4 210.92M
- 148.如何监控一个进程的关闭.mp4 159.69M
- 149.设置和获取进程的命令行参数.mp4 83.50M
- 150.如何打开一个进程去操作.mp4 123.02M
- 151.进程的3种终止方式.mp4 166.78M
- 152.如何遍历所有进程.mp4 198.65M
- 153.模块的概念和获取模块信息.mp4 223.00M
- 154.获取某进程的所有模块信息.mp4 286.60M
- 155.窗口的基本操作和实战小工具.mp4 290.00M
- 156.枚举当前所有顶级窗口和实战小工具.mp4 232.80M
- 157.线程中锁的需求和锁的概念.mp4 99.22M
- 158.临界区的本质和使用.mp4 105.04M
- 159.巧妙运用类封装临界区2种方法.mp4 168.07M
- 160.灵活运用C++互斥量.mp4 89.45M
- 161.事件的概念和使用小案例.mp4 222.10M
- 162.利用事件实现暂停和恢复以及结束线程.mp4 115.33M
- 163.利用事件实现多进程的控制.mp4 74.36M
- 164.利用事件实现进程单开.mp4 47.90M
- 165.互斥体的概念和API介绍.mp4 70.05M
- 166.利用互斥体实现进程同步和单开.mp4 90.38M
- 167.静态链接库和动态链接库的概念和区别.mp4 58.57M
- 168.静态链接库的编译和使用.mp4 56.84M
- 169.动态链接库的编译和使用.mp4 349.01M
- 170.MFC窗口DLL的创建和注意事项.mp4 286.99M
- 171.添加本地资源和释放资源到本地.mp4 341.81M
- 172.解压ZIP文件到指定目录.mp4 255.76M
- 173.递归拷贝和覆盖文件.mp4 280.43M
- 174.递归删除文件.mp4 75.17M
- 175.配置文件ini的读写操作.mp4 119.19M
- 176.获取配置文件中所有的Section.mp4 129.41M
- 177.剪切板的使用和注意事项.mp4 63.95M
- 178.TCP协议 IP 端口的概念.mp4 105.72M
- 179.简易CS架构流程图的介绍.mp4 77.60M
- 180.TCP服务器的代码实现.mp4 428.32M
- 181.TCP客户端的代码实现.mp4 249.78M
- 182.沾包和拆包的概念.mp4 46.23M
- 183.HP网络库的介绍和环境配置.mp4 245.97M
- 184.HP网络库之服务器代码的编写.mp4 371.00M
- 185.HP网络库之服务器拆包逻辑的实现.mp4 175.30M
- 186.HP网络库之客户端类的编写.mp4 208.61M
- 187.HP网络库之服务器类的使用.mp4 111.92M
- 188.HP网络库之客户端类的使用.mp4 225.37M
- 189.聊天软件之服务器的编写.mp4 282.78M
- 190.聊天软件之客户端的编写.mp4 139.27M
- 191.进程通讯之共享内存.mp4 263.79M
- 192.DuiLib界面库的介绍和环境搭建.mp4 153.57M
- 193.DuiLib界面库之一个简单的窗口.mp4 286.78M
- 194.DuiLib界面库之按钮的消息响应.mp4 116.23M
- 195.Duilib界面库之屏蔽标题栏和XML配置.mp4 441.37M
- 196.Duilib界面库之基础类的使用.mp4 123.23M
- 197.Duilib界面库之水平垂直布局和绝对相对定位.mp4 422.02M
- 198.Duilib界面库之自绘标题栏的实现.mp4 203.75M
- 199.Duilib界面库之登录器界面的设计.mp4 122.82M
- 200.Duilib界面库之截获Win32消息以及分析源码.mp4 251.26M
- 201.Duilib界面库之消息映射.mp4 188.57M
- 202.DuiLib界面库之按钮的使用.mp4 379.90M
- 203.DuiLib界面库之静态文本和标签的使用.mp4 219.12M
- 204.Duilib界面库之编辑框的使用.mp4 319.23M
- 205.Duilib界面库之选择框的使用和源码分析.mp4 285.13M
- 206.Duilib界面库之下拉框的使用.mp4 303.13M
- 207.DuiLib界面库之列表框的使用.mp4 505.21M
- 208.Duilib界面库之动画标签页的使用.mp4 250.99M
- 209.DuiLib界面库之菜单的使用.mp4 358.13M
- 210.DuiLib界面库之消息框类的使用.mp4 148.46M
- 211.Duilib界面库之自定义默认样式和字体库.mp4 110.75M
- 212.Duilib界面库之使用ZIP压缩资源和文件资源.mp4 227.41M
- 213.D3D9之环境搭建和Win32窗口初始化.mp4 164.17M
- 214.D3D9之D3D9设备的初始化.mp4 263.87M
- 215.D3D9之封装D3D9窗口框架.mp4 131.15M
- 216.D3D9之顶点格式.mp4 111.86M
- 217.D3D9之三角形单元和顶点索引.mp4 97.06M
- 218.D3D9流水线之局部坐标系和世界坐标系.mp4 114.87M
- 219.D3D9流水线之观察坐标系取景矩阵.mp4 77.00M
- 220.D3D9流水线之背面消隐和光照.mp4 74.02M
- 221.D3D9流水线之裁剪 正交投影和透视投影.mp4 103.63M
- 222.D3D9流水线之视口变换和光栅化.mp4 71.32M
- 223.D3D9之创建顶点缓存.mp4 147.92M
- 迪大学院逆向课程/






