如果你想学逆向工程,市面上能找到的课程大致分两类:一类是直接甩给你一堆工具操作,照着点一遍就算学完;另一类是从汇编和操作系统原理讲起,学三个月还没碰过真实程序。迪大学院这套课走的是中间路线——它假定你已经会写代码,然后带你从 Windows 程序的结构出发,一层层看到底层的逻辑。

它解决的是什么工作场景

逆向工程在实际工作中的需求比想象中具体:拿到一个没有源码的软件,需要判断它做了什么、能不能改、怎么改;分析一个样本的行为,看它读了哪些文件、连了哪些地址;或者手头有个老项目,源码丢了,只剩可执行文件,得从里面把逻辑抠出来。这些场景有共同点——你得看懂程序的骨架,而不是只会用某个工具点几下。

这套课覆盖的 C/C++、MFC、Duilib,恰好对应了 Windows 平台上大量存量软件的开发方式。很多商业软件、工具类程序、甚至一些灰色地带的程序,都是用这套技术栈写的。能读懂这类程序的界面结构和消息流转,逆向的时候就不会对着反汇编窗口发懵。

学完能独立做什么

按课程的设计,走完一遍之后,你应该具备几种能力。一是能独立分析一个用 MFC 或 Duilib 写的 Windows 程序,理清它的窗口层次、事件响应和关键函数入口。二是能对 C/C++ 编译出的二进制做基本的静态和动态分析,定位到感兴趣的代码区域。三是在遇到界面库封装的程序时,知道从哪里下断点、怎么跟消息。

这些能力对应的不是“全自动脱壳机”那种幻想,而是实打实的手工分析功底。它不能让你一键破解任何软件,但能让你在面对一个陌生程序时,有一套可执行的思路。

资料适合什么基础的人

课程的起点定在“有编程基础”。具体来说,你至少写过 C 或 C++ 的代码,理解指针、结构体、函数调用这些概念,知道编译和链接大概是怎么回事。如果完全没有编程经验,直接上这套课会非常吃力,因为课程不会花大量篇幅去讲变量和循环。

另外,对 Windows 编程有一点了解会更好。比如知道窗口、消息、句柄这些词指的是什么,哪怕没亲手写过 MFC 程序。如果没有这部分背景,建议先补一下 Win32 编程的基础,再回来跟课。

这套资料的实际用法

课程内容偏体系化,不建议跳着看。C/C++ 基础部分如果已经扎实,可以快速过一遍,重点看它怎么把语言特性和编译后的二进制对应起来。MFC 和 Duilib 的部分需要动手,最好一边看一边用调试器跟着走,把课上提到的函数在实际程序里断下来看。

配套资料里如果有示例程序,不要只运行一遍就完事。试着改一改代码,重新编译,再观察反汇编的变化,这个来回的过程比单纯看课有用得多。逆向工程说到底是一门需要反复练习的手艺,课只能给你地图,路得自己走。

最后提醒一句:这套课的主题本身有一定敏感性,学的时候把精力放在技术原理和程序分析思路上,用在正途。

课程目录

课程目录101 集
  • 067.静态成员变量和静态成员函数-1.mp4
  • [138.6 MB] 025.typedef和内存对齐原则.mp4
  • [175.4 MB] 192.DuiLib界面库的介绍和环境搭建.mp4
  • [153.6 MB] 007.if判断语句.mp4
  • [88.9 MB] 051.冒泡排序算法的概念和代码实现.mp4
  • [147.4 MB] 112.单独显示非模态对话框.mp4
  • [185.2 MB] 038.结构体数组在内存中的排列方式.mp4
  • [113.7 MB] 194.DuiLib界面库之按钮的消息响应.mp4
  • [116.2 MB] 115.父窗口中创建模态对话框.mp4
  • [219.0 MB] 168.静态链接库的编译和使用.mp4
  • [56.8 MB] 137.MFC应用程序类的配置文件.mp4
  • [189.9 MB] 198.Duilib界面库之自绘标题栏的实现.mp4
  • [203.7 MB] 195.Duilib界面库之屏蔽标题栏和XML配置.mp4
  • [441.4 MB] 028.打开文件关闭文件.mp4
  • [155.1 MB] 132.MFC菜单的添加和使用.mp4
  • [171.1 MB] 091.C++异常.mp4
  • [120.9 MB] 069.继承的概念和使用.mp4
  • [156.5 MB] 114.单独创建模态对话框.mp4
  • [92.7 MB] 003.C语言基本数据类型.mp4
  • [236.9 MB] 203.DuiLib界面库之静态文本和标签的使用.mp4
  • [219.1 MB] 072.private限制符对继承的影响.mp4
  • [70.8 MB] 082.C++命名空间及其标准库介绍.mp4
  • [68.5 MB] 092.C++文件流操作打开和关闭文件.mp4
  • [119.0 MB] 175.配置文件ini的读写操作.mp4
  • [119.2 MB] 036.C项目文件保存和总结.mp4
  • [119.0 MB] 211.Duilib界面库之自定义默认样式和字体库.mp4
  • [110.7 MB] 176.获取配置文件中所有的Section.mp4
  • [129.4 MB] 163.利用事件实现多进程的控制.mp4
  • [74.4 MB] 022.结构体得概念和使用.mp4
  • [214.2 MB] 179.简易CS架构流程图的介绍.mp4
  • [77.6 MB] 191.进程通讯之共享内存.mp4
  • [263.8 MB] 190.聊天软件之客户端的编写.mp4
  • [139.3 MB] 147.如何以管理员的方式创建进程.mp4
  • [210.9 MB] 183.HP网络库的介绍和环境配置.mp4
  • [246.0 MB] 135.MFC文件对话框CFileDialog的使用.mp4
  • [133.6 MB] 221.D3D9流水线之裁剪 正交投影和透视投影.mp4
  • [103.6 MB] 121.MFC添加消息映射函数.mp4
  • [134.0 MB] 117.窗口坐标.mp4
  • [203.6 MB] 101.C++状态机模式.mp4
  • [101.0 MB] 039.汇编下数组和步长的本质关系.mp4
  • [163.5 MB] 064.浅拷贝和深拷贝的区别mp4.mp4
  • [131.5 MB] 099.C++11下的单例模式.mp4
  • [59.9 MB] 145.如何遍历当前进程的所有线程.mp4
  • [163.6 MB] 174.递归删除文件.mp4
  • [75.2 MB] 050.选择排序算法的概念和代码实现.mp4
  • [197.7 MB] 171.添加本地资源和释放资源到本地.mp4
  • [341.8 MB] 222.D3D9流水线之视口变换和光栅化.mp4
  • [71.3 MB] 090.容器之map.mp4
  • [184.5 MB] 043.链表的初始化和添加.mp4
  • [236.2 MB] 186.HP网络库之客户端类的编写.mp4
  • [208.6 MB] 076.多态的概念以及静态多态的使用.mp4
  • [74.4 MB] 125.MFC非模态窗口和结束流程-2.mp4
  • [149.7 MB] 214.D3D9之D3D9设备的初始化.mp4
  • [263.9 MB] 160.灵活运用C++互斥量.mp4
  • [89.4 MB] 042.链表的概念和需求.mp4
  • [90.7 MB] 202.DuiLib界面库之按钮的使用.mp4
  • [379.9 MB] 075.多继承下的构造析构函数的调用顺序.mp4
  • [71.3 MB] 159.巧妙运用类封装临界区2种方法.mp4
  • [168.1 MB] 106.常见的windows消息.mp4
  • [231.9 MB] 057.如何通过指针去遍历游戏二叉树.mp4
  • [253.6 MB] 083.字符串类的常见用法.mp4
  • [177.7 MB] 077.虚函数的概念和使用.mp4
  • [113.3 MB] 054.二叉查找树的创建和遍历.mp4
  • [468.6 MB] 180.TCP服务器的代码实现.mp4
  • [428.3 MB] 070.public限制符对继承的影响.mp4
  • [59.9 MB] 001.第一个C项目解析.mp4
  • [388.2 MB] 130.MFC列表框List Control的添加和使用.mp4
  • [257.7 MB] 196.Duilib界面库之基础类的使用.mp4
  • [123.2 MB] 035.C项目数据和逻辑处理.mp4
  • [196.6 MB] 032.C项目需求分析和架构设计.mp4
  • [19.2 MB] 119.MFC项目的创建和架构介绍.mp4
  • [217.5 MB] 131.MFC标签Tab Control的添加和使用.mp4
  • [292.4 MB] 152.如何遍历所有进程.mp4
  • [198.6 MB] 193.DuiLib界面库之一个简单的窗口.mp4
  • [286.8 MB] 169.动态链接库的编译和使用.mp4
  • [349.0 MB] 018.二维数组和数组指针 行指针 的关系.mp4
  • [64.0 MB] 187.HP网络库之服务器类的使用.mp4
  • [111.9 MB] 016.二维数组多维数组.mp4
  • [164.5 MB] 166.利用互斥体实现进程同步和单开.mp4
  • [90.4 MB] 107.按钮的创建和消息响应.mp4
  • [284.6 MB] 062.析构函数.mp4
  • [126.6 MB] 144.安全的暂停和恢复线程.mp4
  • [141.1 MB] 219.D3D9流水线之观察坐标系取景矩阵.mp4
  • [77.0 MB] 004.有无符号和变量常量.mp4
  • [220.1 MB] 059.this指针和构造函数及其初始化列表.mp4
  • [229.3 MB] 210.DuiLib界面库之消息框类的使用.mp4
  • [148.5 MB] 134.MFC文件类CStdioFile的使用.mp4
  • [101.5 MB] 105.消息循环和窗口过程.mp4
  • [337.6 MB] 118.Win32定时器.mp4
  • [225.8 MB] 155.窗口的基本操作和实战小工具.mp4
  • [290.0 MB] 005.存储类型和类型转换.mp4
  • [165.6 MB] 173.递归拷贝和覆盖文件.mp4
  • [280.4 MB] 110.控件的可见和启用.mp4
  • [77.0 MB] 149.设置和获取进程的命令行参数.mp4
  • [83.5 MB] 136.MFC文件查找类CFileFind的使用.mp4
  • [99.9 MB] 143.调试模式下的暂停和恢复线程.mp4
  • [158.9 MB] 113.父窗口中创建非模态对话框.mp4
  • [71.4 MB] 167.静态链接库和动态链接库的概念和区别.mp4
  • [58.6 MB] 040.结构体数组的好处和实现.mp4
  • [144.3 MB] 067.对象的内存和汇编下的this传递.mp4
  • [132.8 MB] 适合人群 编程爱好者 逆向工程从业者 有志于深入逆向领域的学习者 学习收获 掌握逆向工程基本技能 熟悉MFC和Duilib界面库 提升C/C++编程能力 祝您学习愉快! 学有所成,前程似锦!