注册 登录
编程论坛 汇编论坛

KeServiceDescriptorTable的疑问

oicq 发布于 2011-12-25 19:22, 962 次点击
kd> dd KeServiceDescriptorTable
80553fa0  80502b8c 00000000 0000011c 80503000
80553fb0  00000000 00000000 00000000 00000000
80553fc0  00000000 00000000 00000000 00000000
80553fd0  00000000 00000000 00000000 00000000
80553fe0  00002710 00000000 00000000 00000000
80553ff0  80553ff0 80553ff0 806e2f40 806e2f40
80554000  00000000 00000000 00000000 00000000
80554010  00000000 00000000 00000000 00000000
进行 mov eax,KeServiceDescriptorTable 之后 eax里的值为:80553fa0
为什么自己定义的 int Number=0x1000;
kd> dd Number
fa0e9600  00001000 fa0e9600 ffffd89d 00002762
fa0e9610  00000000 00000000 00001000 fa0e9600
fa0e9620  00000000 00000000 00000000 00000000
fa0e9630  00000000 00000000 00000000 00000000
fa0e9640  00000000 00000000 00000000 00000000
fa0e9650  00000000 00000000 00000000 00000000
fa0e9660  00000000 00000000 00000000 00000000
fa0e9670  00000000 00000000 00000000 00000000
进行 mov eax,Number  eax的值为: 0x1000 而不是地址值: fa0e9600
6 回复
#2
zklhp2011-12-25 20:03
得到地址要

lea eax,Number
#3
oicq2011-12-25 20:16
回复 2楼 zklhp
  版主其实我想做的是 mov eax,KerServiceDescriptorTable 运算后eax 里面的数是 :80502b8c  而不是地址 :80553fa0
#4
oicq2011-12-25 20:25
  我在网上看  KeServiceDescriptorTable也是系统导出来的变量 为什么和自己定义的变量 操作起来 都是 mov eax,XXXXX  为什么系统导出来的 eax的值就变成了 存储器里面的地址
而自己写的变量 就变成了存储器里面的数值  
#5
zklhp2011-12-25 22:35
是 KeServiceDescriptorTable

这个里面放的就是SSDT的地址 相当于个指针了 你mov操作当然得到的是地址

#6
oicq2011-12-25 23:19
回复 5楼 zklhp
哥你太帅了 明白了 我还在那纳闷呢 感谢啊
#7
zaixuexi2012-01-01 15:23
这个明显就是指针不懂么
1