缺口在哪里:异常和调试本是同一条链

很多做逆向的人卡在两个地方:一是看到SEH/VEH只知道名词,不会拆异常链;二是调试器原理像黑盒,不懂假消息、等待事件和返回是怎么串联起来的。这门课把两条线合在一起讲:CPU发生异常后,内核怎么派发,VEH和SEH按什么顺序处理,32位与64位在栈展开上的差异是什么;同时把调试器的控制回路讲透——被调试进程如何抛出事件,调试器如何接收、过滤、等待并返回,再把断点(INT、单步、硬件、内存)的底层实现分别对应到这套回路上。异常和调试不是两块知识,而是一套内核事件分发机制的不同视图。

门槛不低。需要会C/C++调用API,能读懂x86/x64汇编的异常上下文和栈操作,对内核态和用户态切换有基础概念,且用过多款调试器。如果这几项还模糊,建议先补一遍系统基础再进。

学习顺序:先异常派发,再调试回路,最后伪装

不要跳章。建议先看异常部分的CPU异常简介、模拟异常流程、异常派发,先把“谁触发、怎么转、谁处理”的骨架立住。接着读VEH逆向与无痕HOOK、SEH局部展开与全局展开、x64SEH以及异常修复,这一步是为了能看懂反调试常见的异常拦截手法,并掌握自己的改写边界。再到调试体系里的假消息发送、等待事件、事件返回,把调试器为什么能劫持进程的逻辑理顺。之后进入断点与单步的实现差异,最后是进程伪装作为综合案例:伪装不是独立技巧,它依赖前面异常的掩盖能力与调试事件的规避能力。

每看完一个主题,把流程图自己画一遍,重点标出“异常从内核到用户态经过的注册点”和“调试事件在进程与调试器之间的交换点”。能给别人讲清楚这两张图,才算过这一关。

学完能做的事与资料怎么配合练习

学完应能独立做四件事:分析陌生程序的SEH/VEH异常链,定位异常被谁消费;写VEH无痕HOOK并处理自己引入的异常路径;读懂或实现一个最小调试器的发送/等待/返回回路,并能用INT断点、单步或内存断点中的一种复现;对常见反调试给出原理层面的绕过思路。进程伪装要能说清它在异常和调试层面的掩护方式,而不是只抄动作。

资料配合练习分三档。第一档跟做:视频里的例子自己敲一遍,保证能复现。第二档改造:把异常处理逻辑改一处、断点类型换一种、调试事件过滤规则加一条,观察行为变化。第三档对抗:给一个带SEH和反调试的程序,在不用完整调试器的前提下找出它的异常入口与伪装点。资料用于演示和对照,不要复制粘贴;每阶段用“能不能自己说清流程”当检验标准,说不清就回看对应段落。

课程目录

火哥内核5期/
不加密的课程等多个文件
4.X64异常
x4_01.CPU异常简介_Compress.mp4 111.95M
x4_02.模拟异常流程_Compress.mp4 89.71M
x4_03.异常派发_Compress.mp4 177.86M
x4_04.32位异常派发流程_Compress.mp4 169.62M
x4_05.VEH逆向分析_Compress.mp4 202.91M
x4_06.VEH无痕HOOK_Compress.mp4 271.10M
x4_07.VEHBUG修复讲解_Compress.mp4 26.13M
x4_08.SEH异常_Compress.mp4 140.39M
x4_09.SEH编译器扩展_Compress.mp4 91.26M
x4_10.SEH局部展开_Compress.mp4 108.24M
x4_11.SEH全局展开_Compress.mp4 155.72M
x4_12.最后一道防线_Compress.mp4 151.43M
x4_13.x64SEH_Compress.mp4 171.33M
x4_14.SEH异常修复_Compress.mp4 241.56M
5.调试
x5_01.调试体系_Compress.mp4 178.43M
x5_02.假消息发送_Compress.mp4 279.50M
x5_03.调试等待事件_Compress.mp4 215.42M
x5_04.调试事件返回_Compress.mp4 166.74M
x5_05.INT断点原理_Compress.mp4 208.49M
x5_06.单步与硬件_Compress.mp4 189.16M
x5_07.内存断点_Compress.mp4 53.03M
6.进程伪装
x6_01.伪装进程1_Compress.mp4 187.51M
x6_02.伪装文件对象_Compress.mp4 325.26M
x6_03.修改PEB64_Compress.mp4 284.47M
x6_04.伪装完成_Compress.mp4 346.67M
火哥内核上
1.环境配置
1.环境配置_ev.mp4 895.56M
10.DPC与定时器
1.DPC与定时器_ev.mp4 850.43M
11.同步
1.原子指令锁_ev.mp4 930.20M
2.等待块结构_ev.mp4 762.23M
3.KeWaitForSingleObject分析_ev.mp4 852.37M
4.事件信号处理_ev.mp4 577.59M
5.信号量与互斥体_ev.mp4 898.77M
6.互斥体_ev.mp4 904.20M
12.窗口
1.ETWHOOK原理_ev.mp4 1023.14M
2.ETWHOOK窗口保护准备前奏_ev.mp4 1.16G
3.窗口保护HOOKAPI获取_ev.mp4 1.17G
4.窗口保护完成_ev.mp4 1.15G
2.保护模式
1.CPU科普_ev.mp4 567.89M
10.101012分页前戏_ev.mp4 611.99M
11.幽灵地址_ev.mp4 1.21G
12.页属性_ev.mp4 738.89M
13.页基址_ev.mp4 918.94M
14.29912_ev.mp4 570.15M
15.29912杂项_ev.mp4 590.85M
16.缓存_ev.mp4 422.26M
17.TLB_ev.mp4 331.66M
18.控制寄存器_ev.mp4 344.67M
2.段的初探_ev.mp4 632.21M
3.DB_G_ev.mp4 630.23M
4.权限检测_ev.mp4 622.48M
5.调用门_ev.mp4 588.10M
6.中断门_ev.mp4 533.11M
7.陷阱门与劫持int3作业_ev.mp4 614.22M
8.任务段_ev.mp4 923.58M
9.任务门_ev.mp4 349.28M
3.驱动开发
05.蓝屏分析_ev.mp4 1.50G
06.驱动通信1_ev.mp4 2.26G
07.通信封装_ev.mp4 1.34G
08.驱动内存加载1_ev.mp4 1.32G
09.内存加载2_ev.mp4 2.90G
1.驱动helloworld_ev.mp4 652.40M
10.云编译_Compress.mp4 550.40M
10.云编译_ev 播放不了.txt
2.驱动基础1_Compress.mp4 110.09M
3.链表_ev.mp4 1005.76M
4.驱动断链_ev.mp4 1.36G
4.系统调用
1.系统调用1_ev.mp4 474.91M
2.系统调用进内核_ev.mp4 1.21G
3.系统调用返回R3_ev.mp4 728.46M
第四章4.SSDThook_ev.mp4 987.84M
5.进程线程
1.KPCR_进程概念_ev.mp4 1.16G
2.进程_ev.mp4 2.11G
3.线程结构01_ev.mp4 1.70G
4.线程查找_ev.mp4 782.33M
5.线程主动切换_ev.mp4 930.53M
6.被动切换_ev.mp4 779.79M
6(1).句柄表
1.全局句柄表.mp4 5.90G
2.保护进程_绝杀.mp4 4.35G
3.私有句柄表.mp4 3.15G
4.句柄防止降权.mp4 7.65G
6.句柄表
1.全局句柄表_ev 播放不了.txt
2.保护进程_绝杀_ev.mp4 1.46G
3.私有句柄表_ev.mp4 2.93G
4.句柄防止降权_ev.mp4 2.99G
7(1).APC
1.APC初始化,R3APC注入.mp4 3.62G
2APC插入.mp4 3.59G
3.内核APC执行过程.mp4 3.71G
4.APC用户执行.mp4 3.57G
5.挂靠.mp4 4.57G
7.APC
1 APC初始化,R3APC注入1_ev.mp4 55.89M
1.APC初始化,R3APC注入2_ev.mp4 1.34G
2.APC插入_ev.mp4 1.63G
3.内核APC执行过程_ev.mp4 1.55G
4.APC用户执行_ev.mp4 1.56G
5.挂靠_ev.mp4 2.06G
8.项目
09.让ntoskrnl保护我们的进程.mp4 1.41G
1.获取模块.mp4 3.80G
10.远程call.mp4 2.08G
11.远程CALL完成 游戏测试.mp4 5.05G
12.隐藏驱动.mp4 3.46G
13.自动化加壳签名.mp4 2.85G
14.易语言模块封装.mp4 4.10G
2.通讯.mp4 4.43G
3.win10通讯与R3封装.mp4 3.43G
4.驱动安装.mp4 2.92G
5.读内存姿势.mp4 3.55G
6.读内存测试.mp4 3.51G
7.写内存.mp4 2.68G
8.查询内存与句柄回调.mp4 4.76G
8.项目.2
09.让ntoskrnl保护我们的进程.mp4 369.74M
1.获取模块.mp4 446.64M
1.全局句柄表.mp4 606.91M
10.远程call.mp4 185.69M
11.远程CALL完成 游戏测试.mp4 505.20M
12.隐藏驱动.mp4 347.75M
13.自动化加壳签名.mp4 282.41M
14.易语言模块封装.mp4 359.22M
2.通讯.mp4 417.77M
3.win10通讯与R3封装.mp4 618.43M
4.驱动安装.mp4 500.07M
5.读内存姿势.mp4 581.30M
6.读内存测试.mp4 444.74M
7.写内存.mp4 242.45M
8.查询内存与句柄回调.mp4 424.77M
9.回调
1.进程线程模块回调_ev.mp4 585.04M
火哥内核下
1.开幕
1.开讲第一天(座谈大会)_ev.mp4 650.99M
2.内存
1.VAD私有内存_ev.mp4 572.04M
2.映射内存锁页_ev.mp4 1.24G
3.页帧数据库-6大链表_ev.mp4 749.18M
4.修改页属性_ev.mp4 676.87M
3.X64
01.X64入门_ev.mp4 474.42M
02.x64汇编细节_ev.mp4 777.70M
03.X64段简介_ev.mp4 410.35M
04.调用门_ev.mp4 913.82M
05.x64分页_ev.mp4 885.00M
06.隐藏可执行内存_ev.mp4 959.41M
07.注入第一天_ev.mp4 1.05G
08.隐藏注入线程_ev.mp4 566.40M
09.系统调用1_ev.mp4 587.97M
10.R3SSDT表_ev.mp4 581.96M
11.内核系统调用_ev.mp4 850.82M
12.进程回调_ev.mp4 1.25G
13.突破WIN10映射物理页_ev.mp4 604.36M
x4_01.CPU异常简介.pcwl 191.26M
x4_02.模拟异常流程.pcwl 191.02M
x4_03.异常派发.pcwl 305.95M
x4_04.32位异常派发流程.pcwl 281.45M
x4_05.VEH逆向分析.pcwl 347.40M
x4_06.VEH无痕HOOK.pcwl 423.01M
x4_07.VEHBUG修复讲解.pcwl 57.94M
x4_08.SEH异常.pcwl 296.72M
x4_09.SEH编译器扩展.pcwl 187.78M
x4_10.SEH局部展开.pcwl 226.21M
x4_11.SEH全局展开.pcwl 172.89M
x4_12.最后一道防线.pcwl 318.64M
x4_13.x64SEH.pcwl 286.07M
x4_14.SEH异常修复.pcwl 414.36M
x5_01.调试体系.pcwl 368.98M
x5_02.辣鸡调试器假消息.pcwl 492.44M
x5_03.调试等待事件.pcwl 430.02M
x5_04.调试事件返回.pcwl 288.29M
x5_05.INT断点原理.pcwl 356.17M
x5_06.单步与硬件.pcwl 407.63M
x5_07.内存断点.pcwl 112.07M
x6_01.伪装进程1.pcwl 321.91M
x6_02.pcwl 553.32M
x6_03.修改PEB64.pcwl 481.26M
x6_04.伪装完成.pcwl 584.21M
7.调试自建
1.调试自建的介绍.mp4 458.89M
2.调试代码修复,未完成.mp4 2.23G
3.修复BUG_ETWHOOK调试API.mp4 3.98G
4.读写函数完成.mp4 3.90G
5.首次断点绕过PEB检测.mp4 3.43G
8.VT
01.VT概述_ev.mp4 410.04M
02.VT检测_ev.mp4 572.94M
03.初始化VMON区_ev.mp4 495.77M
04.VMX_HOST_GUEST区填充_ev.mp4 1.70G
05.VT框架完成_ev.mp4 814.74M
06.Cpuid拦截,框架完成_ev.mp4 2.51G
07.VT退出_msr拦截的前戏_ev.mp4 857.50M
08.SSDT_SHADOW失败_ev.mp4 2.27G
09.让我们的VT支持WIN10_ev.mp4 1.62G
10.异常拦截_ev.mp4 1.12G
11.事件注入_ev.mp4 960.45M
火哥资料.rar 420.82M
免责声明.txt 0.05kb
x4_02.模拟异