casper_66
驱动牛犊
驱动牛犊
  • 注册日期2010-03-04
  • 最后登录2010-05-21
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望71点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1757回复:2

【请教】基于minifilter框架,修改驱动为系统启动自动加载后机器无限重启的问题

楼主#
更多 发布于:2010-05-19 10:18
情况是这样的

        本驱动是采用minifilter框架,因为对文件的处理涉及到对特定进程的控制。所以必须在模块被加载时候频繁的比对单前进程
例如winword.exe的哈希值。

       //监控进程模块加载
    status = PsSetLoadImageNotifyRoutine(ImageLoadMon);
    if (!NT_SUCCESS( status ))
        {    
              goto DriverEntryCleanup;
         }

VOID
ImageLoadMon (
    __in PUNICODE_STRING FullImageName,
    __in HANDLE ProcessId,
    __in PIMAGE_INFO ImageInfo
     )
{
    NTSTATUS status = STATUS_UNSUCCESSFUL;
    UNREFERENCED_PARAMETER(ImageInfo);
    if (FullImageName == NULL || FullImageName->Buffer == NULL || ProcessId == 0)
    {
        return;
    }
    //验证进程名与进程id,如果在注册表名字匹配或者哈希值匹配就调用addproc把该进程加入受控进程。
    status = Sha2_File ( FullImageName, ProcessId ) ;
}


       现在的问题是,在某些测试环境下,如果把驱动改为系统启动自动加载则引起机器无限重启(估计是一加载该sys就重启,且没有出现蓝屏,无dump文件)。而如果是机器启动后手动加载的话则一切正常。
      在获得哈希值的操作中有对于各进程文件的读操作,会是由于系统启动时大量加载模块,造成的吗?但是我自己的机器环境下却没有
这样的问题。无论是启动自动加载还是启动后手动加载都正常。希望有大牛们能给小弟指点迷津啊。。
      万分感谢、
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-05-19 18:15
使用WINDBG连机调试,有问题会马上断下来,很方便的
casper_66
驱动牛犊
驱动牛犊
  • 注册日期2010-03-04
  • 最后登录2010-05-21
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望71点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-05-20 08:44
引用第1楼eleqi于2010-05-19 18:15发表的  :
使用WINDBG连机调试,有问题会马上断下来,很方便的



恩。。我也是想说调下。不过悲剧的是那台机器没有com口。。有空去搞个usb转com再调吧。。奇怪的是就那台机器有问题

其他试过10+台了没都这种问题
游客

返回顶部