首页
社区
课程
招聘
[求助]获取SSDT失败
发表于: 2013-7-3 14:15 5462

[求助]获取SSDT失败

2013-7-3 14:15
5462
DbgPrint("NtOpenProcess地址是:%x",(PULONG)KeServiceDescriptorTable->pServiceTable+0x7A)

为什么就是找不到NtOpenProcess  的正确地址呢?研究一天了,大师指点

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大哥,取值啊*((PULONG)KeServiceDescriptorTable->pServiceTable+0x7A)
2013-7-3 14:25
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
首先需要取值* 然后 应该是0x7A * 4
2013-7-3 14:46
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
取出来的值和XT看到的值不一样,这是为什么?
2013-7-3 15:04
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
404,你小子牛逼啊,啥时候请我吃鸡蛋灌饼啊
2013-7-3 15:04
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那就得看 KeServiceDescriptorTable你是定义成什么结构了
2013-7-3 15:06
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
最简单的办法是
PULONG SSDT = (PULONG)KeServiceDescriptorTable->pServiceTable;
DbgPrint("NtOpenProcess地址是:%x",SSDT[0x7a]);
2013-7-3 15:07
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=遗失灵魂;1194775]最简单的办法是
PULONG SSDT = (PULONG)KeServiceDescriptorTable->pServiceTable;
DbgPrint("NtOpenProcess地址是:%x",SSDT[0x7a]);[/QUOTE]

这种方式好,受教了
2013-7-3 17:32
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
//KeServiceDescriptorTable(由ntoskrnl.exe导出)
typedef struct _KE_SERVICE_DESCRIPTOR_TABLE{
        PVOID pServiceTable;                        //服务表
        PULONG pServiceCounterTable;        //服务表的函数计数表
        ULONG NumberOfService;                        //服务函数的个数
        ULONG ParamTableBase;
} KE_SERVICE_DESCRIPTOR_TABLE,*PKE_SERVICE_DESCRIPTOR_TABLE;

//手动添加到导入表:
__declspec(dllimport)
PKE_SERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable;
2013-7-3 17:33
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
求设置为最佳回答~
2013-7-3 19:05
0
游客
登录 | 注册 方可回帖
返回
//