首页
社区
课程
招聘
[旧帖] HOOK SSDT的时候一个问题,KeServiceDescriptorTable到底是如何获取的?? 0.00雪花
发表于: 2013-10-31 20:39 5282

[旧帖] HOOK SSDT的时候一个问题,KeServiceDescriptorTable到底是如何获取的?? 0.00雪花

2013-10-31 20:39
5282
在HOOK SSDT的时候定义的有一个结构

typedef struct _SSDT_ENTRY
{
PULONG pServiceTableBase;
PULONG pServiceCountTableBase;
ULONG NumberOfService;
PUCHAR ParamTable;
}SSDT_ENTRY,*PSSDT_ENTRY;

然后定义个变量
SSDT_ENTRY KeServiceDescriptorTable

但是这个也没有初始化,我想知道,他是到底怎么获取的值啊??
在后面的代码上直接使用了。
我想知道这个是在什么时候初始化的?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
...SSDT导出的..直接用就行了.

去看下别人的代码 你写错了
2013-10-31 20:55
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢!
因为对内核不熟,不知道为什么只要一声明就可以用这个结构,能不能详细解释一下,谢谢
2013-10-31 21:05
0
雪    币: 1392
活跃值: (4867)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
4
写WINDOWS程序的时候 你调用一个MessageBox
你定义了没?

比如你写一句 DWORD pAddr=MessageBox;
程序跑起来 pAddr里面就是函数的地址。
keser...table也是一样的。一个导出地址而已。
2013-10-31 21:26
0
雪    币: 225
活跃值: (134)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
我觉得应该是在头文件里定义了吧台  要不搜搜看看
2013-10-31 22:08
0
雪    币: 284
活跃值: (3394)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
6
用Depends打开ntoskrnl.exe,能看到里面有KeServiceDescriptorTable.

要用也得是extern PSSDT_ENTRY KeServiceDescriptorTable;
2013-10-31 23:26
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
typedef struct _SSDT_TABLE
{
  PVOID   ServiceTableBase;
  PULONG  ServiceCounterTableBase;
  ULONG   NumberOfService;
  ULONG   ParamTableBase;
}SSDT_TABLE,* PSSDT_TABLE;
extern PSSDT_TABLE  KeServiceDescriptorTable;
2013-11-1 14:47
0
雪    币: 302
活跃值: (246)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
8
这是extern声明的 extern PKSYSTEM_SERVICE_TABLE KeServiceDescriptorTable;   我有源码 你要不,前几天刚写的
2013-11-1 23:52
0
游客
登录 | 注册 方可回帖
返回
//