VEH→SEH→UEH以及VCH

VEH向量化异常处理器、SEH结构化异常处理器,UEH(UEF)顶层异常处理器。
VEH:保存在全局的一个链表中,所有的线程共享一个VEH链表,VEH活动于用户层。
SEH:保存在栈空间上是一个局部的链表,每个线程都有自己的SEH,线程之间的SEH互相不影响(既活动于内核层又活动于用户层)。
UEH:保存在一个全局变量上,由于全局变量是所有线程能够共享的,所以所有的线程共享一个UEH,它是属于处理异常的最后一道关卡,如果没记错的话,它存在于两个地方,程序的开始位置和最后各存在一个,但是一般不做异常处理(也可以做异常处理),更多的被用于内存转储并上传服务器。最重要的是当程序处于被调试状态时,不会调用UEH。所以可以用于反调试。
VCH:位置是跟随SEH的,就存储在SEH的旁边的一个链表中,可以设置多个,线程共享。可以看成是SEH的一部分,因为存在于SEH后面。也不会做异常处理,前面异常处理成功了,才会调用此VCH。
本文深入探讨了四种异常处理器:VEH(向量化异常处理器)、SEH(结构化异常处理器)、UEH(顶层异常处理器)以及VCH。VEH是全局共享的,工作在用户层;SEH是线程局部的,同时存在于内核层和用户层;UEH作为最后的异常处理手段,主要用于内存转储,且在调试状态下不触发;VCH作为SEH的延伸,是线程共享的,只在前级异常处理成功后才激活。这些机制在异常管理和系统稳定性中起着关键作用。

7517

被折叠的 条评论
为什么被折叠?



