首页
社区
课程
招聘
[求助]如何取得KeStackAttachProcess的地址
发表于: 2008-4-18 16:26 10699

[求助]如何取得KeStackAttachProcess的地址

2008-4-18 16:26
10699
【求助】如何取得KeStackAttachProcess的地址
这个函数是nt导出来的。可是我用下面的代码得到的是错的
        pushad
        ;下面是用KeServiceDescriptorTabled导出符号获得数组的基地址,这个数组中包含有NtXXXX函数的入口地址。
        mov eax, KeServiceDescriptorTable
        mov esi, dword ptr[eax]
        mov esi, dword ptr[esi]
        ;用MmGetSystemRoutineAddress来获得函数ZwLoadDriver的地址。并从这个函数地址后面的第2个字节中取得服务号。从而
        ;获得以服务号为下标的数组元素。
        invoke MmGetSystemRoutineAddress,addr g_KeStackAttachProcess
        inc eax
        movzx ecx,byte ptr[eax]
        sal ecx,2                  
        add esi,ecx
        mov edi,dword ptr[esi]
        invoke DbgPrint, $CTA0("g_KeStackAttachProcess:%08X"),edi
        popad

是不是因为KeServiceDescriptorTabled这个表里面没有导出来这个函数。所以取不到
哪要用什么方法才能取到正确的
好像内核里面没有像GetProcAddress这样的函数哦

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
2
IFS DDK才提供好像
2008-4-18 16:59
0
雪    币: 1746
活跃值: (287)
能力值: (RANK:450 )
在线值:
发帖
回帖
粉丝
3
KeServiceDescriptorTable这个表里的 都是Nt开头系列函数吧 没有KeStackAttachProcess

ntoskrnl.exe里导出了这个函数 直接extern 就可以用
2008-4-19 00:26
0
雪    币: 157
活跃值: (476)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
不是哦我系统的这个函数被hook了.我要改回来.
2008-4-19 10:06
0
雪    币: 1746
活跃值: (287)
能力值: (RANK:450 )
在线值:
发帖
回帖
粉丝
5
读去内核文件 分析导出表  恢复
2008-4-19 11:20
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
6
__asm mov eax, dword ptr [KeStackAttachProcess]
2008-4-19 12:20
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=shoooo;443113]__asm mov eax, dword ptr [KeStackAttachProcess][/QUOTE]

我很赞同
2008-4-19 12:29
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
8
这不是西猛兄嘛
2008-4-19 12:36
0
雪    币: 157
活跃值: (476)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
__asm mov eax, dword ptr [KeStackAttachProcess]
这个好像取不到。只是取到我的驱动的输入表的地址。
我修改了一下。就可以取正确了
                mov eax, KeStackAttachProcess  ;取输入表的地址。取到的应该是jmp  KeStackAttachProcess  
                add eax,2 ;加上2跳过前面的长跳转指令。ff 25
                mov eax,[eax] ;这里保存的是地址。
                mov eax,[eax] ;取地址出来
                mov dwOldKeStackAttachProcess,eax
                invoke DbgPrint, $CTA0("dwOldKeStackAttachProcess:%08X"),eax
2008-4-21 09:52
0
游客
登录 | 注册 方可回帖
返回
//