3: kd> !vad 0x1000000
VAD level start end commit
89e02578 (-1) 1000 101e 3 Mapped Exe EXECUTE_WRITECOPY \WINDOWS\system32\calc.exe
3: kd> !vad 0x1014000
VAD level start end commit
89e02578 (-1) 1000 101e 3 Mapped Exe EXECUTE_WRITECOPY \WINDOWS\system32\calc.exe
问题是!vad命令只提供了整个页面范围的VAD(Virtual AQddress Descrippptor),更准确地说是VAD段的大小。显然,0x1000000 [PE Header]和0x1014000 [. data section]处的页面没有相同的保护。 使用!address: 请注意,!address命令将Map很多内容(包括PTE/PFN和VAD):
3: kd> !address 0x1000000
Mapping user range ...
Mapping system range ...
Mapping page tables...
Mapping hyperspace...
Mapping HAL reserved range...
Mapping User Probe Area...
Mapping system shared page...
Mapping system cache working set...
Mapping loader mappings...
Mapping system PTEs...
Mapping system paged pool...
Mapping session space...
Mapping dynamic system space...
Mapping PFN database...
Mapping non paged pool...
Mapping VAD regions...
Mapping module regions...
Mapping process, thread, and stack regions...
Mapping system cache regions...
1条答案
按热度按时间camsedfj1#
您可以尝试
!vad
和!address
的组合:使用
!vad
:问题是
!vad
命令只提供了整个页面范围的VAD(Virtual AQddress Descrippptor),更准确地说是VAD段的大小。显然,0x1000000 [PE Header]和0x1014000 [. data section]处的页面没有相同的保护。使用
!address
:请注意,
!address
命令将Map很多内容(包括PTE/PFN和VAD):使用
-v
和-map
选项:Attrs
输出提供了有用的信息。此时您可以使用!pte
命令:!pte
的输出提供PTE位(右侧),如下所示:----A--UREV
:A
:已访问R
:只读E
:可执行文件V
:有效命令文档:
!vad
!adress
!pte
希望这能解决你的问题。