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
爱程序 不爱bug
爱生活 不爱黑眼圈
我和你们一样 我和你们不一样
我不是凡客 我要做geek
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步