首页
社区
课程
招聘
[旧帖] [求助]关于windbg的问题 0.00雪花
发表于: 2010-3-15 22:50 2066

[旧帖] [求助]关于windbg的问题 0.00雪花

2010-3-15 22:50
2066
小菜求助:
我用windbg内核调试时候输入下面的命令:

!pte c0300c00
               VA 60180000
PDE at 00000000C0601800    PTE at 00000000C0300C00
contains 0000000000000000

我是想查看c0300c00这个虚拟地址对应的的pte的地址 显示的结果显然是不对的  
突然冒出来个 VA 60180000 这是什么意思啊?我用的是WIN7

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我也是新手,刚刚查看了一下帮助文档
如果指定的参数是一个用于保存页表的内存区域中的地址,那么调试器就把这个参数被当作要查看的PTE的实际地址,调试器会显示这个PTE和相应的PDE。 如果指定的参数不在这个范围内,调试器会显示用于映射这个地址的PTE和PDE。
2010-3-16 09:20
0
雪    币: 133
活跃值: (587)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
还有个问题哦  如下:
这是我的WINDBG的结果
!pte 801544f4
               VA 801544f4
PDE at 00000000C0602000    PTE at 00000000C0400AA0
contains 0000000000B03163  contains 0000000000000000
pfn b03        -G-DA--KWEV   
即801544f4这个虚拟地址的PTE在c0400aa0
但是根据书上说的 所有的页表包括页目录是分布在c0000000-c0300000之间的
c0400aa0超过了这个范围

这个例子在帮助文档中的结果如下:
!pte 801544f4
801544F4  - PDE at C0300800        PTE at C0200550
          contains 0003B163      contains 00154121
        pfn 3b G-DA--KWV    pfn 154 G--A--KRV
即pte在c0200550
经过我的计算:
(c0200550-c0000000)/4*1000=80154000
是正确的
我不知道为什么在我机器上是这种结果。。
我调试的是XP  sp3  外面的主机是win7
2010-3-16 12:37
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不清楚,我猜测或许是因为sp3的原因吧,在这种情况下当然要相信调试器,而不是书,毕竟微软可以随时更改这个位置,但是书出版了之后就没法改了。
2010-3-16 14:11
0
雪    币: 133
活跃值: (587)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
朋友 我解决了 是这样的
系统因为启动了dep而自己吧pae  (pae=物理地址扩展)启动了
pae启动后 分页机制发生了改变
系统可以最大的寻址达到了64GB 虚拟地址还是32位  只不过页目录项和页表项都是8个字节的了
系统使用了36位的地址线去寻址了  页目录在c0600000  还增加了一个页目录指针表 使用3级装换  具体的装换有点复杂 查下资料就行了
2010-3-16 23:34
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
噢,谢谢分享,先记下有这种情况。
ps.大家一起讨论才能学习到新知识,至少以后我遇到这种情况的时候就知道是怎么回事了~哈哈。
2010-3-17 10:26
0
游客
登录 | 注册 方可回帖
返回
//