很多人学Windows安全,卡在同一个地方:能看懂别人的分析文章,轮到自己写代码就下不去手。API知道几个,碰到要自己搭一个Shellcode加载框架、要写个注入器、要处理PE结构的时候,就发现缺口比想象中大。这门课要解决的正是这个断层——它不教你怎么分析,教你怎么自己写出能跑的Windows安全工具。

它盯的是哪几个能力缺口

把课程内容拆开看,它对应的是三块相对独立又互相咬合的能力:

  • Windows API这一层不熟。 很多人C/C++基础还行,但进程、线程、内存、文件、注册表、服务这些系统级操作全靠抄。SDK编程和R3层系统编程就是补这个,把CreateProcess、VirtualAllocEx、WriteProcessMemory这类东西从"见过"变成"能组合起来用"。
  • 界面和调试工具不会自己做。 MFC这块不是让你去做桌面软件工程师,而是让你有能力把底层逻辑包一个能操作的界面出来。做安全工具时,有个自己的控制端和纯命令行硬敲是两回事。
  • Shellcode相关的东西只会用现成的。 这是最明显的缺口。x86和x64两套Shellcode框架都用纯C++写,意味着你要理解加载、执行、内存权限控制这些环节,而不是拷一个别人的loader改改地址。

带写和自练是分开的

课程在动手这部分做了区分,这点对自学的人比较重要。

老师带写的部分是x86 Shellcode框架、x64 Shellcode框架,以及一个加密壳,都是纯C++实现。带写的价值在于你能看到完整的代码结构是怎么组织的——框架的入口在哪里、内存怎么申请、权限怎么切、执行完怎么回收。这些东西光看最终成品代码是看不出来的,中间的设计取舍得有人讲。

课后自练的部分是多功能注入器、HOOK框架、任务管理器。这三样是检验你有没有真的学会的试金石。注入器考察的是进程操作和内存写入的综合运用,HOOK框架考察你对调用流程和地址跳转的理解,任务管理器则逼你把系统信息枚举和界面串起来。能独立写完这几个,前面学的东西才算落地。

加密壳这个点值得单独说

壳是很多人绕不过去的一道坎。加密壳涉及的不只是加密算法本身,还有区段处理、入口点重定向、运行时解密与跳转这一整套流程。用纯C++实现一遍,你会对PE文件结构、加载流程、内存布局有比看文章深得多的认识。学完这块,再回头看加壳脱壳的分析,视角会不一样。

适合谁,不适合谁

适合的人群画像比较清楚:有一定C/C++基础,能读懂指针和结构体,想往逆向或安全开发方向走,但自己闷头写工具时总是卡住。在校学生如果课程里讲过Windows编程,接这门课的难度会比较合适。

不适合的情况也说一下:如果C++基础还停留在语法层面,指针、内存管理、结构体嵌套这些还没写熟,建议先把语言底子打牢再来,否则SDK和系统编程那部分会跟得很吃力。另外这门课不是逆向分析课,不教你怎么用调试器跟二进制,方向是"自己造工具"。

学完应该能回答的问题

拿这几个问题当自测,能答上来、能写出代码,说明这门课你没白学:

  • 一个Shellcode加载框架,从拿到字节数组到执行,中间要经过哪几步内存操作?x86和x64在这上面有什么差别?
  • 多功能注入器里,注入方式不同,对目标进程和自身权限的要求有什么不同?
  • HOOK一个函数,地址是怎么算出来的,跳转指令怎么构造,怎么保证调用完能回到原流程?
  • 加密壳运行时,解密后的代码在内存里处于什么状态,入口点是怎么被接管的?

如果这些问题你现在只能答个大概,那这门课正好补的就是这块。别指望看完就会,带写的部分要跟着敲一遍,自练的部分要自己从零写出来——这两步都做完,缺口才算真的补上。

Windows安全开发训练营

课程详情

课程详情

课程名称:Windows安全开发训练营

课程核心介绍:本课程深入讲解Windows SDK编程、Windows MFC编程以及Windows系统编程(R3API),旨在帮助学员掌握Windows安全开发的核心技能。

适合人群:逆向入门学习者、在校大学生、具备一定C/C++基础的进阶者

学习收获:

  • 熟练掌握Windows SDK编程、Windows MFC编程和Windows系统编程(R3API)
  • 能够独立实现x86 Shellcode框架(纯C++实现)和x64 Shellcode框架(纯C++实现)
  • 了解并实践加密壳(纯C++实现)
  • 掌握多功能注入器、HOOK框架和任务管理器的开发

课程亮点:

  • 老师带写:提供x86 Shellcode框架、x64 Shellcode框架和加密壳的纯C++实现代码
  • 课后自练:学员可自主练习开发多功能注入器、HOOK框架和任务管理器
  • 总课时:47课时
  • 总时长:47小时40分钟
  • 学习形式:录播(直播回放)
  • 课件:全程作业
  • 代码:提供代码

课程目录

01 Windows SDK
  01 WindowsSDK基础知识.mp4
  02 窗口程序创建流程.mp4
  03 GDI图形绘制基础.mp4
  04 鼠标与键盘消息处理.mp4
  05 按钮静态文本与编辑框控件.mp4
  06 组合框与列表框控件.mp4
  07 菜单与树控件.mp4
  08 模态对话框与非模态对话框.mp4
  09 登录框与计算器课堂练习.mp4
02 MFC程序设计
  01 MFC框架.txt
  02 文件类与常用基础控件.txt
  03 常用复杂控件的使用.txt
  04 实现16进制文件浏览器.txt
  05 MFC窗口创建机制.txt
  06 MFC窗口创建机制.txt
  07 MFC消息映射.txt
  08 MFC消息和控件.txt
  09 MFC视图.txt
  10 RTTI和窗口切分.txt
  11 MFC文档和单文档架构.txt
  12 双缓冲序列化机制.txt
03 Windows系统编程
  01 文件与目录操作.txt
  02 进程与线程(一).txt
  03 进程与线程(二).txt
  04 动态库与静态库.txt
  05 内存操作与InlineHook.txt
  06 HotFix与进程通信.txt
  07 进程通信与线程同步.txt
  08 异常处理与异常Hook.txt
  09 窗口相关操作.txt
  10 TLS&SHELL执行&注入.txt
  11 注册表操作与遍历.txt
04 WindowsPE文件结构
  01 PE文件基础知识.txt
  02 PE文件头信息解析.txt
  03 数据目录表定位.txt
  04 导入表解析与IATHook.txt
  05 导出表解析.txt
  06 资源表解析与应用.txt
  07 重定位表的解析与应用.txt
  08 TLS与延迟导入表解析.txt
  09 配置双机调试环境与驱动开发环境.txt
  10 系统调用与函数地址动态寻找.txt
  11 x86x64shellcode框架.txt
  12 加密壳的实现.txt
05 Windows网络编程
  01 TCPIP基础知识.txt
  02 获取本地IP与主机名.txt
  03 获取子网IP及掩码.txt
  04 获取本机物理网卡信息.txt
  05 套接字基础.txt
  06 TCP套接字编程.txt
  07 UDP套接字编程.txt