VEH、VCH、SEH、UEF

VEH:向量化异常处理程序(进程相关)
VCH:向量化异常处理程序,总是在最后调用(进程相关)
SEH:结构化异常处理程序,fs:[0](线程相关)
UEF:TopLevalEH,基于SEH的

EH全称就是ExceptionHandler,中文意为异常处理器。
EH(异常处理程序)是做什么的呢,就是当程序发生一些错误、异常时,系统会保存好线程的CONTEXT(线程上下文)。
再交给EH来处理异常,有时候不仅仅是错误、异常。一些调试用的中断,异常处理程序也可以处理。比如int 1、int 3。
因为SEH的的头部被保存在TEB(fs:[0]),所以它是线程相关的。
UEF、VEH、VCH异常处理函数定义(UEF和VEH、VCH的函数类型名不一样,但是结构是一样的):

UEF、VEH、VCH的异常处理函数调用约定是stdcall的,windows下的系统api、回调,基本都是stdcall的。
SEH的异常处理函数调用约定cdecl的。

1. 第一次交给调试器(进程必须被调试)
2. 执行VEH
3. 执行SEH
4. UEF (TopLevelEH 进程被调试时不会被执行)
-->这里应该还有个VCH //对操作系统有要求 xp下没有
5. 最后一次交给调试器(上面的异常处理都说处理不了,就再次交给调试器)
6. 调用异常端口通知csrss.exe

原文地址:https://www.cnblogs.com/yifi/p/6610322.html