阅读:1858回复:2
【请教】基于minifilter框架,修改驱动为系统启动自动加载后机器无限重启的问题
情况是这样的
本驱动是采用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文件)。而如果是机器启动后手动加载的话则一切正常。 在获得哈希值的操作中有对于各进程文件的读操作,会是由于系统启动时大量加载模块,造成的吗?但是我自己的机器环境下却没有 这样的问题。无论是启动自动加载还是启动后手动加载都正常。希望有大牛们能给小弟指点迷津啊。。 万分感谢、 |
|
沙发#
发布于:2010-05-19 18:15
使用WINDBG连机调试,有问题会马上断下来,很方便的
|
|
板凳#
发布于:2010-05-20 08:44
|
|