① !object \ ,列出根目录下所有的对象,其中 \objecttypes 目录下存在 Process 对象, 拿到对象头地址后直接 dt _object_header xxxxxxxx ,此种方法只能查出 ObjectType(其 Type 为 Type,由Create),即创建新进程时作为 ObCreateObject 函数的参数。所以其 header 中的很多域都为 Null
② !process 0 1 [ImageName] ,然后查看进程的对象表(类型为 _Handle_Table)
!object 0 7 8200dda0 即可。 8200dda0 是 _EProcess 结构体的首地址。
ObjectTable 中则存储着该进程中包含的所有的句柄,是找不到内核对象的。
当在查看 Directory 对象时,Directory 是一个链式结构,前四字节索引到下一个八字节,后四字节是 object 地址。