windbg 查看某进程
!process 0 0 Project3.exe
PROCESS ffffbf0f64cac080 SessionId: 1 Cid: 1154 Peb: 003a0000 ParentCid: 0db4
DirBase: 72645002 ObjectTable: ffffac09f680cd80 HandleCount: 186.
Image: Project3.exe
**PROCESS ffffbf0f64cac080 **:为该进程的eprocess结构体地址指针
Cid: 1154 :进程ID
Peb: 003a0000:保存着进程相关信息结构体
DirBase: 72645002:页目录基址 48位用 还有高18为保留
windbg 查看eprocess结构体
dt _eprocess ffffbf0f64cac080
在eprocess-> +0x000 Pcb : _KPROCESS -> [+0x030] ThreadListHead [Type: _LIST_ENTRY] 可以找到第一个指向线程ethread结构体指针
[+0x000] Flink : 0xffffbf0f61452378 [Type: _LIST_ENTRY *]
[+0x008] Blink : 0xffffbf0f652c4378 [Type: _LIST_ENTRY ]
要注意一下:flink指的是下一个,blink指的是前一个
windbg 查看ethread结构体 + 30位置
dt _ethread 0xffffbf0f61452378-0x2f8 (圈的线程的位置不通)
windbg 查看ethread结构体 + 0x5e0位置
dt _ethread 0xffffbf0f61452378-0x4e8 (圈的线程的位置不通)
注意:0xffffbf0f61452378这个指针指向的是线程_ethread结构体0x2f8 位置,所以要打印完整ethread结构体 需要- 0x2f8 才是ethread头部。
//srvC:\Symbols;F:\xiangmu\MyDriver2\x64\Debug