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

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

2008-4-18 16:26
10184
【求助】如何取得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这样的函数哦

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

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

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

我很赞同
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
shoooo 16 2008-4-19 12:36
8
0
这不是西猛兄嘛
雪    币: 157
活跃值: (376)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
likecrack 2008-4-21 09:52
9
0
__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
游客
登录 | 注册 方可回帖
返回