获得进程映像文件
kd> dt _EPROCESS 0x8204c9c0
+0x000 Pcb : _KPROCESS
+0x078 ProcessLock : _EX_PUSH_LOCK
+0x080 CreateTime : _LARGE_INTEGER 0x1c83cc8`95c2bd34
+0x088 ExitTime : _LARGE_INTEGER 0x0
+0x090 RundownProtect : _EX_RUNDOWN_REF
+0x094 UniqueProcessId : 0x00000720
+0x098 ActiveProcessLinks : _LIST_ENTRY [ 0x8245f708 - 0x824059d0 ]
+0x0a0 QuotaUsage : [3] 0x8c0
+0x0ac QuotaPeak : [3] 0xa70
+0x0b8 CommitCharge : 0x150
+0x0bc PeakVirtualSize : 0x1f3e000
+0x0c0 VirtualSize : 0x1b95000
+0x0c4 SessionProcessLinks : _LIST_ENTRY [ 0x8245f734 - 0x824059fc ]
+0x0cc DebugPort : (null)
+0x0d0 ExceptionPort : 0xe1263508
+0x0d4 ObjectTable : 0xe19c1330 _HANDLE_TABLE
+0x0d8 Token : _EX_FAST_REF
+0x0dc WorkingSetPage : 0x17b1f
+0x0e0 AddressCreationLock : _KGUARDED_MUTEX
+0x100 HyperSpaceLock : 0
+0x104 ForkInProgress : (null)
+0x108 HardwareTrigger : 0
+0x10c PhysicalVadRoot : (null)
+0x110 CloneRoot : (null)
+0x114 NumberOfPrivatePages : 0xb0
+0x118 NumberOfLockedPages : 0
+0x11c Win32Process : 0xe1853c40
+0x120 Job : (null)
+0x124 SectionObject : 0xe176d618
+0x128 SectionBaseAddress : 0x01000000
+0x12c QuotaBlock : 0x82433da8 _EPROCESS_QUOTA_BLOCK
+0x130 WorkingSetWatch : (null)
+0x134 Win32WindowStation : 0x00000038
+0x138 InheritedFromUniqueProcessId : 0x00000718
+0x13c LdtInformation : (null)
+0x140 VadFreeHint : (null)
+0x144 VdmObjects : (null)
+0x148 DeviceMap : 0xe1426fa8
+0x14c Spare0 : [3] (null)
+0x158 PageDirectoryPte : _HARDWARE_PTE
+0x158 Filler : 0
+0x160 Session : 0xf798d000
+0x164 ImageFileName : [16] "notepad.exe"
+0x174 JobLinks : _LIST_ENTRY [ 0x0 - 0x0 ]
+0x17c LockedPagesList : (null)
+0x180 ThreadListHead : _LIST_ENTRY [ 0x82419c34 - 0x82419c34 ]
+0x188 SecurityPort : (null)
+0x18c PaeTop : 0xf7ab62c0
+0x190 ActiveThreads : 1
+0x194 GrantedAccess : 0x1f0fff
+0x198 DefaultHardErrorProcessing : 1
+0x19c LastThreadExitStatus : 0
+0x1a0 Peb : 0x7ffdd000 _PEB
+0x1a4 PrefetchTrace : _EX_FAST_REF
+0x1a8 ReadOperationCount : _LARGE_INTEGER 0xb
+0x1b0 WriteOperationCount : _LARGE_INTEGER 0xb
+0x1b8 OtherOperationCount : _LARGE_INTEGER 0xeb
+0x1c0 ReadTransferCount : _LARGE_INTEGER 0x3f4
+0x1c8 WriteTransferCount : _LARGE_INTEGER 0x4fc
+0x1d0 OtherTransferCount : _LARGE_INTEGER 0x128c
+0x1d8 CommitChargeLimit : 0
+0x1dc CommitChargePeak : 0x150
+0x1e0 AweInfo : (null)
+0x1e4 SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO
+0x1e8 Vm : _MMSUPPORT
+0x230 MmProcessLinks : _LIST_ENTRY [ 0x8245f8a0 - 0x82405b68 ]
+0x238 ModifiedPageCount : 0xa9
+0x23c JobStatus : 0
+0x240 Flags : 0x450801
+0x240 CreateReported : 0y1
+0x240 NoDebugInherit : 0y0
+0x240 ProcessExiting : 0y0
+0x240 ProcessDelete : 0y0
+0x240 Wow64SplitPages : 0y0
+0x240 VmDeleted : 0y0
+0x240 OutswapEnabled : 0y0
+0x240 Outswapped : 0y0
+0x240 ForkFailed : 0y0
+0x240 Wow64VaSpace4Gb : 0y0
+0x240 AddressSpaceInitialized : 0y10
+0x240 SetTimerResolution : 0y0
+0x240 BreakOnTermination : 0y0
+0x240 SessionCreationUnderway : 0y0
+0x240 WriteWatch : 0y0
+0x240 ProcessInSession : 0y1
+0x240 OverrideAddressSpace : 0y0
+0x240 HasAddressSpace : 0y1
+0x240 LaunchPrefetched : 0y0
+0x240 InjectInpageErrors : 0y0
+0x240 VmTopDown : 0y0
+0x240 ImageNotifyDone : 0y1
+0x240 PdeUpdateNeeded : 0y0
+0x240 VdmAllowed : 0y0
+0x240 SmapAllowed : 0y0
+0x240 CreateFailed : 0y0
+0x240 DefaultIoPriority : 0y000
+0x240 Spare1 : 0y0
+0x240 Spare2 : 0y0
+0x244 ExitStatus : 259
+0x248 NextPageColor : 0xe449
+0x24a SubSystemMinorVersion : 0 ''
+0x24b SubSystemMajorVersion : 0x4 ''
+0x24a SubSystemVersion : 0x400
+0x24c PriorityClass : 0x2 ''
+0x250 VadRoot : _MM_AVL_TABLE
+0x270 Cookie : 0x941060a3
kd> dt _SE_AUDIT_PROCESS_CREATION_INFO 0x8204c9c0+0x1e4
+0x000 ImageFileName : 0x8204b1f8 _OBJECT_NAME_INFORMATION
kd> dt _OBJECT_NAME_INFORMATION 0x8204b1f8
+0x000 Name : _UNICODE_STRING "/Device/HarddiskVolume1/WINDOWS/system32/notepad.exe"
注意:2k上不能用,vista上不知道
这个结构在没有调用过ZwQueryInformationProcess(ProcessImageFileInformation)前, 是空的
只有调用过一次该函数,系统才会获得镜象文件并放到这个成员中
以后再调用该函数就从该成员里取得
实现该功能的是内部函数SeLocateProcessImageName
过程是先从Process的SectionObject中取到 FileObjectPointer。