Windows内核-系统描述符表与SSDT

以下参考自水滴教程及https://blog.csdn.net/weixin_42052102/article/details/83118255

System Services Descriptor Table

System Services Descriptor Table,即系统服务描述符表,内核中实际存在两个系统服务描述符表,一个时KeServiceDescriptorTable(由ntoskrnl.exe导出),一个是KeServieDescriptorTableShadow(没有导出)。
使用windbg查看上述两个结构
SSDT

typedef struct _ServiceDescriptorEntry {  
  unsigned int *ServiceTableBase;        //SSDT基址
  unsigned int *ServiceCounterTableBase; //SSDT中服务被调用次数的计数器
  unsigned int NumberOfServices;         //SSDT服务个数
  unsigned char *ParamTableBase;         //SSPT基址
}SSDT, *PSSDT;

SSDTshadow

typedef struct _SERVICE_DESCRIPTOR_TABLE
{
      SYSTEM_SERVICE_TABLE ntoskrnl;  // ntoskrnl.exe ( native api )
      SYSTEM_SERVICE_TABLE win32k;    // win32k.sys (gdi/user support)
      SYSTEM_SERVICE_TABLE Table3;    // not used
      SYSTEM_SERVICE_TABLE Table4;    // not used
}SYSTEM_DESCRIPTOR_TABLE,*PSYSTEM_DESCRIPTOR_TABLE,**PPSYSTEM_DESCRIPTOR_TABLE;

可以看出SSDTshadow不仅指出ntoskrnl.exe,也指除了win32k.sys;
使用windbg查看SSDTshadow如下,可以看到SSDTshadow有4项,但最后2项均为0,只有前两项,分别指向ntoskrnl.exe的SystemServiceTable和Win32k.sys的SystemServiceTable
在这里插入图片描述

SystemServiceTable在这里插入图片描述

SystemServiceTable,即系统服务表,在XP系统下有两个 SystemServiceTable,分别是Ntoskrl.exe(常用的系统服务)和Win32k.sys(与图形显示及用户界面相关的系统服务)的 SystemServiceTable, SystemServiceTable结构如下:

typedef struct _KSYSTEM_SERVICE_TABLE
{
   PULONG ServiceTableBase;		//这个指向系统服务函数地址表
   PULONG ServiceCounterTableBase;	//系统这个服务表调用了几次
   ULONG NumberOfService;			//服务函数的个数
   PULONG ParamTableBase;			//参数表 

}KSYSTEM_SERVICE_TABLE, *PKSYSTEM_SERVICE_TABLE;

ServiceTableBase: 指向系统服务函数地址表,该表存储了Ntoskrl.exe与Win32k.sys函数
ServiceCounterTableBase: 计数
NumberOfService: 指出 ServiceTableBase中函数的个数,利用系统调用号调用函数时,需要将系统调用号后12位代表的index与该项作比较,超过则越界
ParamTableBase: 每一项一个字节,指出ServiceTableBase中对应的函数的参数个数,以B为单位

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值