windbg学习!vad

在ring0 !address不能提供详细的信息了

可以尝试用下!vad

!vad扩展显示一个或多个虚拟地址详细的虚拟地址描述符(virtual address descriptor (VAD))。

语法

!vad VAD-Root [Flags

参数

VAD-Root
指定要显示的VAD树的根的16进制地址。
Flags
指定显示的格式。可能的值如下:
0
显示基于VAD-Root的整个VAD树。(这是默认情况。)
1
仅显示由VAD-Root指定的VAD。这种显示会包含更详细的分析。

使用!process命令可以找到任何进程的VAD的根地址



kd> !vad 821b3260 
VAD     level      start      end    commit
821b3260 ( 0)         10       42         0 Mapped       READWRITE          Pagefile-backed section
8207a148 ( 2)         70       70         0 Mapped       READWRITE          Pagefile-backed section
81f472c0 ( 3)         80      17f         0 Mapped       READWRITE          Pagefile-backed section
8216a8f8 ( 1)      7c920    7c9b2         5 Mapped  Exe  EXECUTE_WRITECOPY  WINDOWSsystem32
tdll.dll
一般可能要使用!vad xxx 1

kd> ? DriverEntry
Evaluate expression: -124588016 = f892f010
kd> !vad f892f010 1

VAD @ f892f010
  Start VPN     8b55ff8b  End VPN 458b51ec  Control Area  00000000
  FirstProtoPte 00000000  LastPte 00000000  Commit Charge     c483 (50307.)
  Secured.Flink        0  Blink          0  Banked/Extend 92e2c040
  File Offset          0  
      PhysicalMapping ViewUnmap PrivateMemory EXECUTE_READ      NOCACHE

kd> !vad f892f010 
VAD     level      start      end    commit
e8f892f1 f892f010: Unable to get contents of VAD3
可以看到,不设flag,可能无法显示.






原文地址:https://www.cnblogs.com/hgy413/p/3693355.html