-
-
[旧帖] [求助]逆向中_DEVICE_OBJECT结构体对应 0.00雪花
-
发表于: 2010-3-21 05:45 968
-
代码:
其中DeviceObject是创建的 fdo ,edi是pdo,将fdo附加在pdo上以后出现如下代码
mov eax, [ebp+DeviceObject]
mov ecx, [ebp+var_40C] ;var_40C=0FFFFFFFFh
mov [esi], eax
mov eax, [ebp+Handle]
mov [esi+4], edi
mov dword ptr [esi+18h], 1
mov [esi+1Dh], bl
mov [esi+1Eh], bl
mov [esi+1Ch], bl
mov [esi+20h], ecx
mov [esi+24h], eax
问题是 这些esi+xx分别代表什么?
结构体如下,其中esi+18h,esi+20h,esi+24h都能对应上,可是别的是对应什么呢
查看结构体
kd> dt nt!_DEVICE_OBJECT
+0x000 Type : Int2B
+0x002 Size : Uint2B
+0x004 ReferenceCount : Int4B
+0x008 DriverObject : Ptr32 _DRIVER_OBJECT
+0x00c NextDevice : Ptr32 _DEVICE_OBJECT
+0x010 AttachedDevice : Ptr32 _DEVICE_OBJECT
+0x014 CurrentIrp : Ptr32 _IRP
+0x018 Timer : Ptr32 _IO_TIMER
+0x01c Flags : Uint4B
+0x020 Characteristics : Uint4B
+0x024 Vpb : Ptr32 _VPB
+0x028 DeviceExtension : Ptr32 Void
+0x02c DeviceType : Uint4B
+0x030 StackSize : Char
+0x034 Queue : __unnamed
+0x05c AlignmentRequirement : Uint4B
+0x060 DeviceQueue : _KDEVICE_QUEUE
+0x074 Dpc : _KDPC
+0x094 ActiveThreadCount : Uint4B
+0x098 SecurityDescriptor : Ptr32 Void
+0x09c DeviceLock : _KEVENT
+0x0ac SectorSize : Uint2B
+0x0ae Spare1 : Uint2B
+0x0b0 DeviceObjectExtension : Ptr32 _DEVOBJ_EXTENSION
+0x0b4 Reserved : Ptr32 Void
其中DeviceObject是创建的 fdo ,edi是pdo,将fdo附加在pdo上以后出现如下代码
mov eax, [ebp+DeviceObject]
mov ecx, [ebp+var_40C] ;var_40C=0FFFFFFFFh
mov [esi], eax
mov eax, [ebp+Handle]
mov [esi+4], edi
mov dword ptr [esi+18h], 1
mov [esi+1Dh], bl
mov [esi+1Eh], bl
mov [esi+1Ch], bl
mov [esi+20h], ecx
mov [esi+24h], eax
问题是 这些esi+xx分别代表什么?
结构体如下,其中esi+18h,esi+20h,esi+24h都能对应上,可是别的是对应什么呢
查看结构体
kd> dt nt!_DEVICE_OBJECT
+0x000 Type : Int2B
+0x002 Size : Uint2B
+0x004 ReferenceCount : Int4B
+0x008 DriverObject : Ptr32 _DRIVER_OBJECT
+0x00c NextDevice : Ptr32 _DEVICE_OBJECT
+0x010 AttachedDevice : Ptr32 _DEVICE_OBJECT
+0x014 CurrentIrp : Ptr32 _IRP
+0x018 Timer : Ptr32 _IO_TIMER
+0x01c Flags : Uint4B
+0x020 Characteristics : Uint4B
+0x024 Vpb : Ptr32 _VPB
+0x028 DeviceExtension : Ptr32 Void
+0x02c DeviceType : Uint4B
+0x030 StackSize : Char
+0x034 Queue : __unnamed
+0x05c AlignmentRequirement : Uint4B
+0x060 DeviceQueue : _KDEVICE_QUEUE
+0x074 Dpc : _KDPC
+0x094 ActiveThreadCount : Uint4B
+0x098 SecurityDescriptor : Ptr32 Void
+0x09c DeviceLock : _KEVENT
+0x0ac SectorSize : Uint2B
+0x0ae Spare1 : Uint2B
+0x0b0 DeviceObjectExtension : Ptr32 _DEVOBJ_EXTENSION
+0x0b4 Reserved : Ptr32 Void
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: