wenh7788 发表于 2012-2-29 11:23:54

求x64 ssdt 函数计算公式

32位下
以ntOpenProcess举例
Address=(ULONG)KeServiceDescriptorTable->ServiceTableBase+0x7A*4
64位下怎么算的?
求指教,谢谢!

Tesla.Angela 发表于 2012-2-29 12:35:58

逆向一下我的WIN64AST不就知道了嘛,哈哈。。。
**** Hidden Message *****

wenh7788 发表于 2012-2-29 13:27:49

Tesla.Angela 发表于 2012-2-29 12:35 static/image/common/back.gif
逆向一下我的WIN64AST不就知道了嘛,哈哈。。。
**** 本内容被作者隐藏 ****

老大我没有懂啊。
我的电脑的ssdt的基地址是 ssdtbase=0xfffff800'03ec7840
那么ntopenprocess的地址应该是
ssdtbase+>>4 我这样难道错了?
ssdtbase+>>4
??????
怎么算的的结果好像不对呢?
我在继续计算下。

wenh7788 发表于 2012-2-29 14:46:58

老大,我快糊涂了。一会指针一会指针里面的值,我有点糊涂了
kd> dq 0xfffff800`03ec7840
fffff800`03ec7840fffff800`03c91b00 00000000`00000000
fffff800`03ec785000000000`00000191 fffff800`03c9278c
fffff800`03ec786000000000`00000000 00000000`00000000
fffff800`03ec787000000000`00000000 00000000`00000000
fffff800`03ec7880fffff800`03c91b00 00000000`00000000
fffff800`03ec789000000000`00000191 fffff800`03c9278c
fffff800`03ec78a0fffff960`00121c00 00000000`00000000
fffff800`03ec78b000000000`0000033b fffff960`0012391c
我的SSDT应该是fffff800`03c91b00 这个吧
那么按照公式计算的到(ntopenprocess为例)
funcadd= (fffff800`03c91b00 + 0x23*4) >> 4 + fffff800`03c91b00对吗?

我真被告糊涂了!!

wenh7788 发表于 2012-2-29 16:14:03

我晕死,我总算是弄出来了。
ntopenprocess为例
funcadd=((dword)[(fffff800`03c91b00 + 0x23*)])>>4 + fffff800`03c91b00
         =((dword))>>4 +fffff800`03c91b00

地址里面的值。

就这样

wenh7788 发表于 2012-3-1 09:50:29

谢谢老大给我的1分,其实我是灌水的。赚回我的20分{:soso_e120:}

Tesla.Angela 发表于 2012-3-1 15:47:59

wenh7788 发表于 2012-3-1 09:50 static/image/common/back.gif
谢谢老大给我的1分,其实我是灌水的。赚回我的20分

1水晶=10积分,每增加1000分,等级增加1级。

kk1025 发表于 2013-4-7 17:21:36

準備來IDA一下

mlyknown 发表于 2014-8-7 20:52:11

....

laomaotx 发表于 2015-5-6 02:29:20

回帖也有好处的,看看是什么东西!

jocleys 发表于 2020-4-19 01:10:00

感谢楼主压!!

liaodongling 发表于 2021-12-7 00:25:35

支持下
页: [1]
查看完整版本: 求x64 ssdt 函数计算公式