首页
社区
课程
招聘
异常分发的不明之处
发表于: 2014-4-3 07:56 4257

异常分发的不明之处

2014-4-3 07:56
4257
查看资料显示,异常产生进入r3,调用KiUserExceptionDispatcher,函数会先检查存在调试器,检查 VEH,检查 SEH 。。。看了看资料 大体是
KiUserExceptionDispatcher(PEXCEPTION_RECORD ExceptionRecord,
                                   PCONTEXT Context)
{
             EXCEPTION_RECORD NestedExceptionRecord;
             NTSTATUS Status;

             /* call the vectored exception handlers */
             if(RtlpExecuteVectoredExceptionHandlers(ExceptionRecord,
                                                     Context) != ExceptionContinueExecution)
             {
                 goto ContinueExecution;
             }
             else
             {
                 /* Dispatch the exception and check the result */
                 if(RtlDispatchException(ExceptionRecord, Context))
                 {
ContinueExecution:
                     /* Continue executing */
                     Status = NtContinue(Context, FALSE);
                 }
                 else
                 {
                     /* Raise an exception */
                     Status = NtRaiseException(ExceptionRecord, Context, FALSE);
                 }
             }

             ..............
}
但是用OD,查看的结果是 伪代码
    DWORD retValue;  
    if (RtlDispatchException(pExcptRec,pContext))  
    {  
      
        retValue=::ZwContinue( pContext,0);  
    }else{  
         
        retValue=::ZwRaiseException(pExcptRec,pContext,0);  
    }

只调用了RtlDispatchException,只检查SEH,这是为什么

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
RtlDispatchException里负责VEH的撸动,你看的代码是怎么出现的?
2014-4-3 10:36
0
雪    币: 52
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上说的应该对的,在用户态下发生的异常,KiUserExceptionDispatcher会调用RtlDispatchException来寻找异常处理器,在支持VEH的系统中,在寻找结构化异常处理器之前,RtlDispatchException会先调用RtlCallVectoredExceptionHandlers给VEH优先的处理机会。VEH应该是在RtlDispatchException中处理的。。。。
2014-4-3 10:59
0
雪    币: 7
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
明白了,看的不仔细,看的是RentOS的代码
2014-4-3 20:36
0
雪    币: 7
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
大V神,再问一个问题,我HOOK了 MyKiUserExceptionDispatcher,在hook函数内部就出不来了。。请教一下
2014-4-3 20:38
0
游客
登录 | 注册 方可回帖
返回
//