一) WinDBG + VMWare 学习与使用: 查看进程的 PEB 信息
1)首先,当然是希望看看虚拟机中运行了哪些进程? 这可以用 !process 命令来查看。 在 kd> 提示符后输入 !process 0 0 命令可以得到结果。
输入:
kd> !process 0 0
输出:
**** NT ACTIVE PROCESS DUMP ****
PROCESS 814039a0 SessionId: 0 Cid: 0008 Peb: 00000000 ParentCid: 0000
DirBase: 00030000 ObjectTable: 8143a7c8 TableSize: 58.
Image: System
.... (为节省篇幅,故省略这些不必要的细节信息)
PROCESS 81092c20 SessionId: 0 Cid: 04b0 Peb: 7ffdf000 ParentCid: 00dc
DirBase: 03c01000 ObjectTable: 81103d48 TableSize: 212.
Image: explorer.exe
.... (为节省篇幅,故省略这些不必要的细节信息)
2)我们先来看看当前进程是哪一个? 这可以用 .process 命令来看看。
kd> .process
Implicit process is now 8046f930
3)此时我们可以看到当前进程不是 explorer.exe,而在一个 PROCESS 为 8046f930 的进程上 (注: 通常这个进程为 Idle 进程)。
这里我们希望看看 explorer.exe 进程的相关信息。因此我们希望能够切换当前进程到 explorer.exe 上。
同样这只需要使用一个带参数的 .process 命令就可以达到目的。
输入:
kd> .process 81092c20
输出:
Implicit process is now 81092c20
4)这样我们就把当前进程切换到 explorer.exe 上了。此时我们可以用如 !peb 来看看 explorer.exe 进程的 PEB 信息。
输入:
kd> !peb
输出:
PEB at 7FFDF000
InheritedAddressSpace: No
ReadImageFileExecOptions: No
BeingDebugged: No
ImageBaseAddress: 00400000
Ldr.Initialized: Yes
Ldr.InInitializationOrderModuleList: 71f48 . ad930
Ldr.InLoadOrderModuleList: 71ec0 . ad920
Ldr.InMemoryOrderModuleList: 71ec8 . ad928
Base TimeStamp Module
400000 3e9cd567 Apr 16 12:00:39 2003 ?????????????????????
77f80000 3ef31d0f Jun 20 22:41:19 2003 C:\WINNT\system32\ntdll.dll
796d0000 3ef31d11 Jun 20 22:41:21 2003 C:\WINNT\system32\ADVAPI32.DLL
77e60000 3ef31d10 Jun 20 22:41:20 2003 C:\WINNT\system32\KERNEL32.DLL
786f0000 3ef31d11 Jun 20 22:41:21 2003 C:\WINNT\system32\RPCRT4.DLL
77f40000 3ef31d0f Jun 20 22:41:19 2003 C:\WINNT\system32\GDI32.DLL
77df0000 3ef31d10 Jun 20 22:41:20 2003 C:\WINNT\system32\USER32.DLL
77c50000 3ef31d12 Jun 20 22:41:22 2003 C:\WINNT\system32\SHLWAPI.DLL
77b30000 3ef31d12 Jun 20 22:41:22 2003 C:\WINNT\system32\COMCTL32.DLL
75e00000 3ef31d22 Jun 20 22:41:38 2003 C:\WINNT\system32\IMM32.DLL
76dd0000 3ef31d1a Jun 20 22:41:30 2003 C:\WINNT\system32\BROWSEUI.DLL
795b0000 3ef31d1b Jun 20 22:41:31 2003 C:\WINNT\system32\SHDOCVW.DLL
78f90000 3ef31d14 Jun 20 22:41:24 2003 C:\WINNT\system32\SHELL32.DLL
77a30000 3ef31d13 Jun 20 22:41:23 2003 C:\WINNT\system32\OLE32.DLL
6dd30000 38513577 Dec 11 01:16:39 1999 C:\WINNT\system32\INDICDLL.dll
72c50000 3ef31d11 Jun 20 22:41:21 2003 C:\WINNT\system32\CLBCATQ.DLL
77990000 3ef31d13 Jun 20 22:41:23 2003 C:\WINNT\system32\OLEAUT32.dll
78000000 3e6e3115 Mar 12 02:55:17 2003 C:\WINNT\system32\MSVCRT.dll
0 00000000 Jan 01 08:00:00 1970 *** unable to read name ***
*** unable to read LDR entry at FFFFFFF8
SubSystemData: 0
ProcessHeap: 70000
ProcessParameters: 20000
WindowTitle: '*** unable to read string'
ImageFile: '*** unable to read string'
CommandLine: '*** unable to read string'
DllPath: ''
Environment: 0x140013