首先谢谢,没想到这么快就回帖了

~
我明白你说的什么意思。但是好像这种方法在有些情况下不适用。如:
lkd> dt !_CONTROL_AREA 0x85af60e0
nt!_CONTROL_AREA
+0x000 Segment : 0xe3344008 _SEGMENT
+0x004 DereferenceList : _LIST_ENTRY [ 0x0 - 0x0 ]
+0x00c NumberOfSectionReferences : 1
+0x010 NumberOfPfnReferences : 1
+0x014 NumberOfMappedViews : 1
+0x018 NumberOfSubsections : 1
+0x01a FlushInProgressCount : 0
+0x01c NumberOfUserReferences : 0
+0x020 u : __unnamed
+0x024 FilePointer : 0x825fc6c0 _FILE_OBJECT
+0x028 WaitingForDeletion : (null)
+0x02c ModifiedWriteCount : 0
+0x02e NumberOfSystemCacheViews : 1
lkd> !object 0x85af60e0 +30
Object: 85af6110 Type: (00008080)
ObjectHeader: 85af60f8 (old version)
HandleCount: 0 PointerCount: 1
Directory Object: 00000001 Name:
上面可以知道紧接着在CONTROL_AREA结束后,又是一个对象。
lkd> dd 0x85af6110 l 1
85af6110 85af60e0
可以看见这个对象的首四个字节是指向CONTROL_AREA的。
可是,使用_OBJECT_HEADER查看如下:
lkd> dt !_OBJECT_HEADER 85af60f8
nt!_OBJECT_HEADER
+0x000 PointerCount : 1
+0x004 HandleCount : 0
+0x004 NextToFree : (null)
+0x008 Type : 0x00008080 _OBJECT_TYPE
+0x00c NameInfoOffset : 0xc0 ''
+0x00d HandleInfoOffset : 0xc6 ''
+0x00e QuotaInfoOffset : 0x5f '_'
+0x00f Flags : 0x82 ''
+0x010 ObjectCreateInfo : (null)
+0x010 QuotaBlockCharged : (null)
+0x014 SecurityDescriptor : 0x00010000
+0x018 Body : _QUAD
指向_OBJECT_TYPE的是0x00008080 明显不正确(处于无效断点区)。
不知道有没有办法查到这个对象的类型,或者这个对象是尚未公开的(哦~~,额是瞎猜的,猜错了大家不要笑)?