能力值:
( LV13,RANK:460 )
|
-
-
2 楼
对于第一个问题,你可以使用传统的命令 !address ,但该命令的输出结果不太友好,需要一些基础的数据分析功底才能理解;
或者,你可以使用命令 !cmkd.kvas ,它可以列出完整的内核虚拟地址空间布局,
内核虚拟地址空间分成多种类型,比如可换页池,不可换页池,PFN 数据库,系统页表项,驱动程序映像..等等,分别用于相应目的。
在 32位windows 上,内核内存采取动态的分配策略,每次以2MB/4MB为单位分配,并且标记出分配的内核内存块属于哪一类内核虚拟地址空间。注意,同一类内核内存块的分布可能是非连续的。
光讲理论可能难以理解,下面看一看直观的调试器输出:
接下来,你可以用 !pte 命令后接上面输出中的任一虚拟地址,就能获取该虚拟地址映射到的物理页面的访问属性——是Ring3 可读写,还是
Ring0 可读写,是否可以执行。。。等等。如果你想知道 !pte 输出中物理页面的每个标志代表的访问属性含义,可以参考 Intel 的文档。
在上图中,“V” 置位表明页面在内存中(有效),否则在磁盘上(无效),访问无效页面将引发缺页异常从而调用 KiPageFault() ;
“E”置位表明页面包含可执行代码;“W”置位表明页面可写;“K”置位表明页面仅在内核模式(Ring0)下可访问。
|
能力值:
( LV8,RANK:130 )
|
-
-
3 楼
这个命令只能用于vista 以后的系统吗?XP内核不支持吗?
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
还不知道一楼说的这个扩展命令。。。
|
能力值:
( LV13,RANK:460 )
|
-
-
5 楼
xp Service pack 3 是基于 NT5.2 版的内核,应该不支持,此命令需要在 NT6.1 版内核上使用,比如
windows 7/server 2008/R2 等等。
忘记说了,需要下载第三方的Windbg 调试器扩展DLL(CMKD.dll),可以访问这个站点下载:
http://www.codemachine.com/tool_cmkd.html
下载到本地后,把它放在你的Windbg二进制文件所在的路径下,比如
D:\Windows Kits\10\Debuggers\x86
然后就可以使用这个命令了
|
能力值:
( LV8,RANK:130 )
|
-
-
6 楼
回答的够认真详细,分给你了
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
看看再说,不明所以
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
喔喔喔,新人不能发帖,没办法,来回帖的
|
|
|