Debugging Tools for Windows |
!vpdd扩展显示指定进程的物理地址、虚拟地址和内存内容。
!vpdd PID VirtualAddress
Windows NT 4.0 | Kdextx86.dll |
Windows 2000 | 不可用 |
Windows XP和之后 | 不可用 |
下面是一个示例。假设要查看cmd.exe进程保存在虚拟地址0x4AD00000处的内存内容。首先使用!process来查看进程地址:
.......
PROCESS 810e0020 SessionId: 0 Cid: 04e4 Peb: 7ffdf000 ParentCid: 014c
DirBase: 0268a000 ObjectTable: 810db008 TableSize: 22.
Image: CMD.EXE
!vpdd的首个参数可以使用进程地址(0x810E0020)或者PID(0x4E4)。第二个参数是要显示的虚拟地址:
00fcf000 4ad00000 00905a4d 00000003 00000004 0000ffff
00fcf010 4ad00010 000000b8 00000000 00000040 00000000
00fcf020 4ad00020 00000000 00000000 00000000 00000000
00fcf030 4ad00030 00000000 00000000 00000000 000000d0
00fcf040 4ad00040 0eba1f0e cd09b400 4c01b821 685421cd
00fcf050 4ad00050 70207369 72676f72 63206d61 6f6e6e61
00fcf060 4ad00060 65622074 6e757220 206e6920 20534f44
00fcf070 4ad00070 65646f6d 0a0d0d2e 00000024 00000000
输出中,第一列是物理地址,第二列是虚拟地址。每行中剩下的内容是该位置保存的内容,以DWORD的形式。
相关主题,查看!vtop、!ptov、以及将虚拟地址转换成物理地址。关于页表和页目录的信息,查看 Mark Russinovich 和David Solomon 编写的Microsoft Windows Internals。