instruder
论坛版主
论坛版主
  • 注册日期2010-03-10
  • 最后登录2011-02-15
  • 粉丝0
  • 关注7
  • 积分31分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2935回复:3

为什么总是出现异常?

楼主#
更多 发布于:2010-04-08 20:08
  NTSTATUS  MyNtCreateFile(...)
{    

                         ......................
__try{        
                
            ProbeForRead(ObjectAttributes->ObjectName,ObjectAttributes->Length,4);
            ProbeForRead(ObjectAttributes->ObjectName->Buffer,ObjectAttributes->ObjectName->Length,4);
         KdPrint(("FileName =%S%S%S\n",Parent?Parent->Buffer:L"",Parent?L"\\":L"",ObjectAttributes->ObjectName->Buffer));
    }
    __except(EXCEPTION_EXECUTE_HANDLER)
    {
        KdPrint(("CATCH THE exception\n"));    
    }


    KdPrint(("goto the real CreateFile\n"));

                 .............
}

这一段是我HOOK了ZwCreateFile函数中的我的自己的MyZwCreateFile函数,为什么总是捕获到了异常了呢,ObjectAttributes->ObjectName,ObjectAttributes->ObjectName->Buffer总是不可读的吗?我自己 随便打开一个文件佳,也是那样,并不获得文件名,网上很多这样的HOOK ZwCreateFile函数得到文件名的,自己运行后总是不行啊?



instruder
论坛版主
论坛版主
  • 注册日期2010-03-10
  • 最后登录2011-02-15
  • 粉丝0
  • 关注7
  • 积分31分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-04-08 20:16
如果并不是用这个ProbeForRead去测试是否可读的话,就会出现  PAGE_FAULT_IN_NONPAGED_AREA这个错误.!大牛门这个怎么解决啊
instruder
论坛版主
论坛版主
  • 注册日期2010-03-10
  • 最后登录2011-02-15
  • 粉丝0
  • 关注7
  • 积分31分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-04-08 21:02
我的是XPSP3的环境,在03上有时能看到得到的文件名,XPSP3总是异常....
instruder
论坛版主
论坛版主
  • 注册日期2010-03-10
  • 最后登录2011-02-15
  • 粉丝0
  • 关注7
  • 积分31分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-09-03 14:42
事过几个月,自己来回答下,ProbeForRead是测试r3空间的,对于r0空间的都是异常
游客

返回顶部