首页
社区
课程
招聘
[旧帖] [求助]用windbg观察虚拟地址与物理地址转换中碰到的困惑 0.00雪花
发表于: 2009-8-25 22:12 1368

[旧帖] [求助]用windbg观察虚拟地址与物理地址转换中碰到的困惑 0.00雪花

2009-8-25 22:12
1368
我在《软件调试》这本书上看到了用windbg观察虚拟地址与物理地址的转换。网上也有类似的文章(http://www.cnblogs.com/Winston/archive/2009/04/12/1434225.html)。我于是做同样的实验:
     首先在计算器中输入123456,然后打开windbg并且附加到计算器进程,接着:
0:002> dd calc!gpszNum
01014db0  000b7c30 00000000 00000001 00000000
01014dc0  00000000 ffffffff 00000000 00000000

看到123456存储在000b7c30中,输入:
0:002> du 000b7c30
000b7c30  "123456."

可以看到这个地址是正确的,下面看下这个地址的二进制:
0:002> .formats 000b7c30
Evaluate expression:
  Hex:     000b7c30
  Decimal: 752688
  Octal:   00002676060
  Binary:  00000000 00001011 01111100 00110000
  Chars:   ..|0
  Time:    Sat Jan 10 01:04:48 1970
  Float:   low 1.05474e-039 high 0
  Double:  3.71877e-318
这个地址的二进制看到了,接下来打开另一个windbg,启动本地内核模式,输入lkd> !process 0 0
PROCESS 87b16408  SessionId: 0  Cid: 0fac    Peb: 7ffdb000  ParentCid: 05e4
    DirBase: 0a5c0640  ObjectTable: e369e6f8  HandleCount: 110.
    Image: TXPlatform.exe

PROCESS 87a83b88  SessionId: 0  Cid: 01f0    Peb: 7ffd7000  ParentCid: 0a0c
    DirBase: 0a5c0340  ObjectTable: e389d858  HandleCount: 568.
    Image: Maxthon.exe

PROCESS 89a905d8  SessionId: 0  Cid: 0134    Peb: 7ffd6000  ParentCid: 0a0c
    DirBase: 0a5c0540  ObjectTable: e39bc0a0  HandleCount: 109.
    Image: calc.exe

PROCESS 87f12030  SessionId: 0  Cid: 09ec    Peb: 7ffdf000  ParentCid: 0a0c
    DirBase: 0a5c0660  ObjectTable: e38d2d90  HandleCount: 173.
    Image: windbg.exe

PROCESS 87c4c030  SessionId: 0  Cid: 029c    Peb: 7ffd9000  ParentCid: 0a0c
    DirBase: 0a5c0620  ObjectTable: e524b818  HandleCount: 131.
    Image: windbg.exe

从这儿开始我就有疑问了,为什么所有的进程的dirbase都是以0a5c0开头?接着查看计算器进程首地址:
lkd> !dd 0a5c0540
# a5c0540 2371d801 00000000 22c1e801 00000000
# a5c0550 23f9f801 00000000 26c1c801 00000000
# a5c0560 5b1d1801 00000000 5b212801 00000000
跟据上面的二进制码可以得知也表基地址为2371d000,然后:
lkd> !dd 2371d000+B7*4
#2371d2dc 00000000 00000000 00000000 00000000
#2371d2ec 00000000 00000000 00000000 00000000
#2371d2fc 00000000 00000000 00000000 00000000
#2371d30c 00000000 00000000 00000000 00000000
竟然全是0.
不知道这是为什么,请高手帮忙解答一下

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
3个字
PAE
2009-8-25 22:34
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢,很可能是的
2009-8-26 14:04
0
游客
登录 | 注册 方可回帖
返回
//