首页
社区
课程
招聘
关于驱动问题的请教
发表于: 2014-4-12 14:50 9727

关于驱动问题的请教

2014-4-12 14:50
9727
小弟在这里发过帖请教过,也感谢各位对我的帮助,致使我解决问题.我这个驱动我相信很多牛人已经看到过,经测试在虚拟机中完全无问题,但是一在真机中运行,再装QQ管家,就会蓝屏,或者装完重启了蓝屏,我这里的源码有没有牛人能帮忙看看哪里有无问题,在此拜谢

#include "ntifs.h"
#include <ntstrsafe.h>
#include <ntddk.h>
#include <string.h>
#define REGISTRY_POOL_TAG 'pRE'

NTSTATUS st;
LARGE_INTEGER g_CallbackCookie;
ANSI_STRING  astr;
VOID UnloadDriver(PDRIVER_OBJECT DriverObject);
NTSTATUS RegistryCallback(IN PVOID CallbackContext, IN PVOID Argument1, IN PVOID Argument2);
BOOLEAN GetRegistryObjectCompleteName(PUNICODE_STRING pRegistryPath, PUNICODE_STRING pPartialRegistryPath,PVOID pRegistryObject);

NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{   
  
  DbgPrint("[RegRoutine]Loading!\n");
  
  DriverObject->DriverUnload = UnloadDriver;
   
  st = CmRegisterCallback(RegistryCallback,NULL,&g_CallbackCookie);
  if ( !NT_SUCCESS(st) )  
  {
    DbgPrint("[RegRoutine]CmRegisterCallback Failed!\n");
    return st;
  }
  
  DbgPrint("[RegRoutine]RegistryCallback Addr:0x%08X\n",RegistryCallback);  
  DbgPrint("[RegRoutine]Cookie.LowPart:0x%08X Cookie.HighPart:0x%08X\n",g_CallbackCookie.LowPart,g_CallbackCookie.HighPart);
  return st;
}

VOID UnloadDriver(PDRIVER_OBJECT DriverObject)
{
  CmUnRegisterCallback(g_CallbackCookie);
  DbgPrint("[RegRoutine]UnLoading!\n");
}

NTSTATUS
RegistryCallback( IN PVOID CallbackContext, IN PVOID Argument1, IN PVOID Argument2 )
{
  int type;
  BOOLEAN exception = FALSE;
  BOOLEAN registryEventIsValid = FALSE;
  UNICODE_STRING registryPath;
  UCHAR* registryData = NULL;
  ULONG registryDataLength = 0;
  ULONG registryDataType = 0;
  
  registryPath.Length = 0;
  registryPath.MaximumLength = NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR);
  registryPath.Buffer = ExAllocatePoolWithTag(NonPagedPool, registryPath.MaximumLength, 'ConT');
  
  if(registryPath.Buffer == NULL)
  {
    DbgPrint("[RegRoutine]Allocate registryPath failed!\n");
    return STATUS_SUCCESS;
  }
  
  type = (REG_NOTIFY_CLASS)Argument1;
  try{
    switch(type)
    {

      case RegNtDeleteValueKey:
      {
        
        PREG_DELETE_VALUE_KEY_INFORMATION deleteValueKey = (PREG_DELETE_VALUE_KEY_INFORMATION)Argument2;
        if( MmIsAddressValid(deleteValueKey->ValueName))
        {
        registryEventIsValid = GetRegistryObjectCompleteName(®istryPath, NULL, deleteValueKey->Object);
        if((registryEventIsValid) && (deleteValueKey->ValueName->Length > 0))
        {
   
          RtlUnicodeStringToAnsiString(&astr,®istryPath,TRUE);
          DbgPrint("[RegDeletedKey]KeyName:%s!\n",astr.Buffer);
          RtlFreeAnsiString(&astr);
            RtlUnicodeStringToAnsiString(&astr,deleteValueKey->ValueName,TRUE);  
            DbgPrint("[RegDelValue]ValueName:%s!\n",astr.Buffer);
          if (!_stricmp(astr.Buffer,"Start Page") )
          {  
            
            DbgPrint("[RegDelValue]Forbin!\n");  
            DbgPrint("[RegDelValue]ForbinKeyName:%s!\n",deleteValueKey->ValueName);  
            RtlFreeAnsiString(&astr);  
            return STATUS_INVALID_PARAMETER;
          }  
          RtlFreeAnsiString(&astr);  
        }
      }
        break;  
      }

      case RegNtPreSetValueKey:
      {
        PREG_SET_VALUE_KEY_INFORMATION setValueKey = (PREG_SET_VALUE_KEY_INFORMATION)Argument2;
      if( MmIsAddressValid(setValueKey->ValueName) )
      {
        registryEventIsValid = GetRegistryObjectCompleteName(®istryPath, NULL, setValueKey->Object);
        
        if((registryEventIsValid) && (setValueKey->ValueName->Length > 0))
        {
          RtlUnicodeStringToAnsiString(&astr,®istryPath,TRUE);
          DbgPrint("[RegSetKey]KeyName:%s!\n",astr.Buffer);
          RtlFreeAnsiString(&astr);
           registryDataType = setValueKey->Type;
          registryDataLength = setValueKey->DataSize;
          registryData = ExAllocatePoolWithTag(NonPagedPool, registryDataLength, REGISTRY_POOL_TAG);
        }
        RtlUnicodeStringToAnsiString(&astr,setValueKey->ValueName,TRUE);  
        DbgPrint("[RegSetValue]ValueName:%s!\n",astr.Buffer);
         
          if(registryData != NULL)
          {
          if (!_stricmp(astr.Buffer,"Start Page") )  
          {  
            DbgPrint("[RegSetValue]Forbin!\n");  
            DbgPrint("[RegSetValue]ForbinKeyName:%s!\n",astr.Buffer);  
            RtlFreeAnsiString(&astr);  
            return STATUS_INVALID_PARAMETER;  
          }
          RtlFreeAnsiString(&astr);
          }
        
        }
        
        break;
      }

      
      default:
        break;
    }
  }
  except( EXCEPTION_EXECUTE_HANDLER )
  {
    DbgPrint("[RegRoutine]Catch a Expection!\n");
    exception = TRUE;
    registryEventIsValid = FALSE;
  }
  
  if(registryEventIsValid)
  {
   
    if(registryData != NULL)
    {
      ExFreePoolWithTag(registryData, REGISTRY_POOL_TAG);
    }  
      
  }
  
  if(registryPath.Buffer != NULL)
  {
    ExFreePoolWithTag(registryPath.Buffer, 'ConT');
  }  
   
   
  return STATUS_SUCCESS;
}

BOOLEAN GetRegistryObjectCompleteName(PUNICODE_STRING pRegistryPath, PUNICODE_STRING pPartialRegistryPath, PVOID pRegistryObject)
{
   BOOLEAN foundCompleteName = FALSE;
   BOOLEAN partial = FALSE;
   NTSTATUS status;
   ULONG returnedLength;
   PUNICODE_STRING pObjectName = NULL;

   //判断object的有效性
   if( (!MmIsAddressValid(pRegistryObject)) || (pRegistryObject == NULL) )
   {
     DbgPrint("[RegRoutine]pRegistryObject Invalid!\n");
     return FALSE;
   }
   

  if(pPartialRegistryPath != NULL)
  {
    if( (((pPartialRegistryPath->Buffer[0] == '\\') || (pPartialRegistryPath->Buffer[0] == '%')) ||
      ((pPartialRegistryPath->Buffer[0] == 'T') && (pPartialRegistryPath->Buffer[1] == 'R') &&
       (pPartialRegistryPath->Buffer[2] == 'Y') && (pPartialRegistryPath->Buffer[3] == '\\'))) )
    {
      RtlUnicodeStringCopy(pRegistryPath, pPartialRegistryPath);
      partial = TRUE;
      foundCompleteName = TRUE;
    }
  }
  
  
  if(!foundCompleteName)
  {
    //使用ObQueryNameString来得到object对应的名称
    status = ObQueryNameString(pRegistryObject, (POBJECT_NAME_INFORMATION)pObjectName, 0, &returnedLength );
   
    //第一次传的buffer长度为0,ObQueryNameString返回的结果必定是缓冲区大小不足
    if(status == STATUS_INFO_LENGTH_MISMATCH)  
    {
        pObjectName = ExAllocatePoolWithTag(NonPagedPool, returnedLength, 'ConT'); //申请内存
      if( pObjectName == NULL ) //申请内存失败则返回FALSE
      {
        DbgPrint("[RegRoutine]AllocatePool Failed!\n");
        return FALSE;
      }
      //查询名称
      status = ObQueryNameString(pRegistryObject, (POBJECT_NAME_INFORMATION)pObjectName, returnedLength, &returnedLength );
      if(NT_SUCCESS(status))
     {
        RtlUnicodeStringCopy(pRegistryPath, pObjectName);  //拷贝名称
        foundCompleteName = TRUE;
     }

      ExFreePoolWithTag(pObjectName, 'ConT');  //无论查询是否成功都应该释放内存   
     }  
      
  }
  

return foundCompleteName;

}

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

收藏
免费 0
支持
分享
最新回复 (31)
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
蓝屏应该生成蓝屏的转储文件,使用windbg打开,会很明确的提示是哪个驱动导致的蓝屏以及蓝屏时的堆栈信息;如果本地有驱动的符号表,windbg会直接找到导致蓝屏的那一行代码
2014-4-12 16:23
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我看了4个蓝屏的DUMP的文件,指向了5行不同的代码,很疑惑,但是我感觉没有错,其中有一个是指向了RtlFreeAnsiString(&astr);
2014-4-12 16:46
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有没有人可以解此难题,望指教
2014-4-12 17:33
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个很复杂    实力现在还不够
2014-4-12 17:48
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
让我自己很无奈的是在虚拟机上测试完好,一到真机,就会蓝屏,是不是和其他软件冲突,我是装了QQ管家才这样的
2014-4-12 19:01
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我的这段代码上有无任何问题,希望可以指教
2014-4-12 19:43
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
木有大神知道么
2014-4-13 17:58
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
9
把DbgPrint全部注释掉看看
2014-4-13 22:54
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
打印语句也会有关系么?
2014-4-13 23:05
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哈哈!!!!
2014-4-13 23:13
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
啊啊,求大神指导啊!
2014-4-14 00:08
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
case RegNtPreSetValueKey:
      {
        PREG_SET_VALUE_KEY_INFORMATION setValueKey = (PREG_SET_VALUE_KEY_INFORMATION)Argument2;
      if( MmIsAddressValid(setValueKey->ValueName) )
      {
        registryEventIsValid = GetRegistryObjectCompleteName(®istryPath, NULL, setValueKey->Object);
        
        if((registryEventIsValid) && (setValueKey->ValueName->Length > 0))
        {
          RtlUnicodeStringToAnsiString(&astr,®istryPath,TRUE);
          DbgPrint("[RegSetKey]KeyName:%s!\n",astr.Buffer);
          RtlFreeAnsiString(&astr);
           registryDataType = setValueKey->Type;
          registryDataLength = setValueKey->DataSize;
          registryData = ExAllocatePoolWithTag(NonPagedPool, registryDataLength, REGISTRY_POOL_TAG);
        }
        RtlUnicodeStringToAnsiString(&astr,setValueKey->ValueName,TRUE);  
        DbgPrint("[RegSetValue]ValueName:%s!\n",astr.Buffer);
         
          if(registryData != NULL)
          {
          if (!_stricmp(astr.Buffer,"Start Page") )  
          {  
            DbgPrint("[RegSetValue]Forbin!\n");  
            DbgPrint("[RegSetValue]ForbinKeyName:%s!\n",astr.Buffer);  
            RtlFreeAnsiString(&astr);  
            return STATUS_INVALID_PARAMETER;  
          }
          RtlFreeAnsiString(&astr);
          }
        
        }
        
        break;
      }

用了WINDBG分析了核心转储的DUMP文件,指向了这个CASE情况中
registryDataType = setValueKey->Type;     有问题,有大神能指教错在哪么
2014-4-14 10:11
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
14
跟你说了,你还不愿意照着做一下。看了你之前发的帖子,有人也指出这个问题了,你却还没领悟
2014-4-14 10:31
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
DbgPrint("[RegSetValue]ValueName:%s!\n",astr.Buffer);
这里有问题,Buffer不一定有0结尾。估计还有,没仔细看。
貌似前面有个哥们说过注释掉DbgPrint。
2014-4-14 10:51
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
把Dbgprint都注释掉了,情况还是一样
2014-4-14 11:14
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我一装QQ管家,只要一安装到这个QQ管家的TsFlMgr.sys这个驱动,就蓝屏
2014-4-14 11:18
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
或者是一重启就蓝屏
2014-4-14 11:19
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
83a07b3c 840a020c b320b27c 83a07be8 0000002c nt!CmpGetValueKeyFromCache+0x9e
83a07ba8 8409f36e 83a07c38 83a07be8 83a07be4 nt!CmpFindValueByNameFromCache+0xa2
83a07c1c 8409f896 b3794cd8 00000002 0020eda8 nt!CmQueryValueKey+0x350
83a07cd0 8d36442b 00000268 0020ee6c 00000002 nt!NtQueryValueKey+0x312
WARNING: Stack unwind information not available. Following frames may be wrong.
83a07d14 83e9227a 00000268 0020ee6c 00000002 TsFltMgr+0x442b
83a07d14 77a270b4 00000268 0020ee6c 00000002 nt!KiFastCallEntry+0x12a
0020ee3c 00000000 00000000 00000000 00000000 0x77a270b4
每次都是在QQ管家的这个驱动这里出错,是不是说QQ管家保护了电脑不让加载驱动?
2014-4-14 11:25
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
20
首先你要自己学会分析下dump,至少你把windbg的dump分析发上来让大家看下。
另外0截断那个问题,不止是dbgprint有,
if (!_stricmp(astr.Buffer,"Start Page") )  这里也有问题。你自己检查下。
2014-4-14 11:25
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
KERNEL_MODE_EXCEPTION_NOT_HANDLED (8e)
This is a very common bugcheck.  Usually the exception address pinpoints
the driver/function that caused the problem.  Always note this address
as well as the link date of the driver/image that contains this address.
Some common problems are exception code 0x80000003.  This means a hard
coded breakpoint or assertion was hit, but this system was booted
/NODEBUG.  This is not supposed to happen as developers should never have
hardcoded breakpoints in retail code, but ...
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG.  This will let us see why this breakpoint is
happening.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: 83f74359, The address that the exception occurred at
Arg3: 83a07a54, Trap Frame
Arg4: 00000000

Debugging Details:
------------------

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx

FAULTING_IP:
nt!ExAllocatePoolWithTag+34f
83f74359 66894602        mov     word ptr [esi+2],ax

TRAP_FRAME:  83a07a54 -- (.trap 0xffffffff83a07a54)
ErrCode = 00000003
eax=00710600 ebx=00000100 ecx=00000000 edx=000001ff esi=00710054 edi=000001ff
eip=83f74359 esp=83a07ac8 ebp=83a07b14 iopl=0         nv up ei pl nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010206
nt!ExAllocatePoolWithTag+0x34f:
83f74359 66894602        mov     word ptr [esi+2],ax      ds:0023:00710056=????
Resetting default scope

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

BUGCHECK_STR:  0x8E

PROCESS_NAME:  QQPCMgr.exe

CURRENT_IRQL:  0

LAST_CONTROL_TRANSFER:  from 83f0901c to 83f32e9c

STACK_TEXT:  
83a075c4 83f0901c 0000008e c0000005 83f74359 nt!KeBugCheckEx+0x1e
83a079e4 83e92e66 83a07a00 00000000 83a07a54 nt!KiDispatchException+0x1ac
83a07a4c 83e92e1a 83a07b14 83f74359 badb0d00 nt!CommonDispatchException+0x4a
83a07ae0 8409e56e a6dfc52c cec3e5c0 00000001 nt!KiExceptionExit+0x192
83a07b14 8409ea67 00000001 00000034 61564d43 nt!HvpGetCellPaged+0x15e
83a07b3c 840a020c b320b27c 83a07be8 0000002c nt!CmpGetValueKeyFromCache+0x9e
83a07ba8 8409f36e 83a07c38 83a07be8 83a07be4 nt!CmpFindValueByNameFromCache+0xa2
83a07c1c 8409f896 b3794cd8 00000002 0020eda8 nt!CmQueryValueKey+0x350
83a07cd0 8d36442b 00000268 0020ee6c 00000002 nt!NtQueryValueKey+0x312
WARNING: Stack unwind information not available. Following frames may be wrong.
83a07d14 83e9227a 00000268 0020ee6c 00000002 TsFltMgr+0x442b
83a07d14 77a270b4 00000268 0020ee6c 00000002 nt!KiFastCallEntry+0x12a
0020ee3c 00000000 00000000 00000000 00000000 0x77a270b4

STACK_COMMAND:  kb

FOLLOWUP_IP:
TsFltMgr+442b
8d36442b 8b4c240c        mov     ecx,dword ptr [esp+0Ch]

SYMBOL_STACK_INDEX:  9

SYMBOL_NAME:  TsFltMgr+442b

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: TsFltMgr

IMAGE_NAME:  TsFltMgr.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  52ce39b0

FAILURE_BUCKET_ID:  0x8E_TsFltMgr+442b

BUCKET_ID:  0x8E_TsFltMgr+442b

Followup: MachineOwner
2014-4-14 11:30
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
22
有难度,目测不出来
2014-4-14 11:35
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
应该是QQ管家的驱动过滤把
2014-4-14 12:02
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
有没有大神帮忙能看下这个错误分析.是QQ管家的那个驱动和我的驱动冲突了么

BAD_POOL_HEADER (19)
The pool is already corrupt at the time of the current request.
This may or may not be due to the caller.
The internal pool links must be walked to figure out a possible cause of
the problem, and then special pool applied to the suspect tags or the driver
verifier to a suspect driver.
Arguments:
Arg1: 00000022,
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------

BUGCHECK_STR:  0x19_22

POOL_ADDRESS:  00000000

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

PROCESS_NAME:  QQVCRTP.exe

CURRENT_IRQL:  2

EXCEPTION_RECORD:  adfe3a5c -- (.exr 0xffffffffadfe3a5c)
ExceptionAddress: 8449e03e (nt!RtlUnicodeStringToAnsiString+0x000000b3)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000001
   Parameter[1]: 00000043
Attempt to write to address 00000043

TRAP_FRAME:  adfe3ab0 -- (.trap 0xffffffffadfe3ab0)
ErrCode = 00000002
eax=00000000 ebx=00000000 ecx=00000043 edx=91210000 esi=8ff64018 edi=00000000
eip=8449e03e esp=adfe3b24 ebp=adfe3b58 iopl=0         nv up ei pl zr na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010246
nt!RtlUnicodeStringToAnsiString+0xb3:
8449e03e 881c01          mov     byte ptr [ecx+eax],bl      ds:0023:00000043=??
Resetting default scope

LAST_CONTROL_TRANSFER:  from 84357bf9 to 842cae30

STACK_TEXT:  
adfe3018 84357bf9 00000000 adfe3050 adfe3044 nt!ExpFindAndRemoveTagBigPages+0x1fd
adfe3088 84358a76 00000000 00000000 adfe3b58 nt!ExFreePoolWithTag+0x13f
adfe3098 8449e089 00000000 842add36 842b13c0 nt!ExFreePool+0xf
adfe30a0 842add36 842b13c0 adfe312c 842b13d0 nt!RtlUnicodeStringToAnsiString+0xf9
adfe30a4 842b13c0 adfe312c 842b13d0 88e780da nt!_NLG_Return2
adfe30d0 842b148c 84361a48 adfe3b48 fffffffe nt!_local_unwind4+0x80
adfe30e4 842f6dba adfe3b58 84361a48 00000000 nt!_EH4_LocalUnwind+0x10
adfe3114 842af602 adfe31e0 adfe3b48 adfe3230 nt!_except_handler4+0x14f
adfe3138 842af5d4 adfe31e0 adfe3b48 adfe3230 nt!ExecuteHandler2+0x26
adfe315c 842effe8 adfe31e0 adfe3b48 adfe3230 nt!ExecuteHandler+0x24
adfe3508 8ff627b3 adfe3b94 8ff627b3 00000000 nt!RtlUnwind+0x126
adfe352c 8ff62607 00000000 00000000 00000000 BrowserSafe!_EH4_GlobalUnwind+0x15 [d:\5359\minkernel\crts\crtw32\misc\i386\exsup4.asm @ 498]
adfe3554 842af602 fffffffe adfe3b94 adfe3640 BrowserSafe!_except_handler4+0xe7 [d:\5359\minkernel\crts\crtw32\misc\i386\chandler4.c @ 397]
adfe3578 842af5d4 adfe3a5c adfe3b94 adfe3640 nt!ExecuteHandler2+0x26
adfe359c 842e3348 adfe3a5c adfe3b94 adfe3640 nt!ExecuteHandler+0x24
adfe3630 842ebfec adfe3a5c adfe3640 00010017 nt!RtlDispatchException+0xb6
adfe3a40 84275e66 adfe3a5c 00000000 adfe3ab0 nt!KiDispatchException+0x17c
adfe3aa8 84275e1a adfe3b58 8449e03e badb0d00 nt!CommonDispatchException+0x4a
adfe3b58 8ff62254 8ff64018 00000043 00000001 nt!KiExceptionExit+0x192
adfe3ba4 844d4c7d 00000000 00000001 adfe3c48 BrowserSafe!RegistryCallback+0x122 [c:\users\yn\desktop\my software\ʹÓÃcmregistercallbackÄں˺¯ÊýÀ´½øÐÐ×¢²á±í¼à¿ØµÄ´úÂëÀý×Ó\operatereg\protectreg.c @ 106]
adfe3c18 84442805 00000001 adfe3c48 00000001 nt!CmpCallCallBacks+0x156
adfe3cd0 8d73536b 000005e4 07dcdb64 00000000 nt!NtSetValueKey+0x2e5
WARNING: Stack unwind information not available. Following frames may be wrong.
adfe3d14 8427527a 000005e4 07dcdb64 00000000 TsFltMgr+0x336b
adfe3d14 777c70b4 000005e4 07dcdb64 00000000 nt!KiFastCallEntry+0x12a
07dcdb38 00000000 00000000 00000000 00000000 0x777c70b4

STACK_COMMAND:  kb

FOLLOWUP_IP:
BrowserSafe!_EH4_GlobalUnwind+15 [d:\5359\minkernel\crts\crtw32\misc\i386\exsup4.asm @ 498]
8ff627b3 5f              pop     edi

FAULTING_SOURCE_LINE:  d:\5359\minkernel\crts\crtw32\misc\i386\exsup4.asm

FAULTING_SOURCE_FILE:  d:\5359\minkernel\crts\crtw32\misc\i386\exsup4.asm

FAULTING_SOURCE_LINE_NUMBER:  498

FAULTING_SOURCE_CODE:  
No source found for 'd:\5359\minkernel\crts\crtw32\misc\i386\exsup4.asm'

SYMBOL_STACK_INDEX:  b

SYMBOL_NAME:  BrowserSafe!_EH4_GlobalUnwind+15

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: BrowserSafe

IMAGE_NAME:  BrowserSafe.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  534bc2e1

FAILURE_BUCKET_ID:  0x19_22_BrowserSafe!_EH4_GlobalUnwind+15

BUCKET_ID:  0x19_22_BrowserSafe!_EH4_GlobalUnwind+15

Followup: MachineOwner
2014-4-14 19:26
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
请问各位大神我的这个CMregistrycallback的注册表保护驱动和QQ管家的IE主页保护是一个原理么,就是case presetvaluekey 这个情况加上就蓝屏
2014-4-15 11:00
0
游客
登录 | 注册 方可回帖
返回
//