用户异常与模拟异常的派发
Windows内核分析索引目录 :https://www.cnblogs.com/onetrainee/p/11675224.html 用户异常与模拟异常的派发 一、 KiDispatchException 函数处理流程图 无论用户模拟异常还是CPU异常,经过前面分析,在经过记录之后,最终都会经过KiDispatchException这个派发函数中。 在KiDispatchException中会对CPU异常和用户异常分别进行处理。 CPU异常:首先调用内核调试器,如果调用失败则调用RtlDispatchException(该函数后面会有介绍)分发, RtlDispatchException 函数会检查SEH链中是否有该程序的处理函数,如果有则返回成功, 若 RtlDispatchException 函数 处理异常失败,其会尝试第二次调用内核调试器进行调试处理,如果最终处理不了直接蓝屏。 用户异常:先尝试内核调试器,再尝试用户调试器,如果还不行,直接返回用户代码尝试使用try_catch_语法来进行处理,之后还不行再尝试两次用户调试器。 如果最终还是处理不了异常,该进程会关闭并报出错误。(用户异常不会导致蓝屏出现) 二、RtlDispatchException的函数解析代码 1 VOID 2 KiDispatchException