因为Window不同版本的内核数据结构有所不同,先声明实验环境。本实验在window7 32位系统下并且运行运算器(calc.exe)测试。为了显示的信息不至于冗长,在开始实验前先讲讲dt命令的-y参数及ExpTimerResolutionListHead全局变量。
1、dt命令查看_EPROCESS结构及-y参数
lkd> dt nt!_EPROCESS
+0x000 Pcb : _KPROCESS
.....
+0x0e4 SessionProcessLinks : _LIST_ENTRY
.....
+0x16c ImageFileName : [15] UChar
+0x17b PriorityClass : UChar
......
+0x2a8 TimerResolutionLink : _LIST_ENTRY
+0x2b0 RequestedTimerResolution : Uint4B
+0x2b4 ActiveThreadsHighWatermark : Uint4B
+0x2b8 SmallestTimerResolution : Uint4B
+0x2bc TimerResolutionStackRecord : Ptr32 _PO_DIAG_STACK_RECORD
+0x2c0 SequenceNumber : Uint8B
+0x2c8 CreateInterruptTime : Uint8B
+0x2d0 CreateUnbiasedInterruptTime : Uint8B