
上节中说明了系统通过int 2e进入0环,eax传递具体的API编号,那么从哪里知道该编号所在的函数呢。就是SSDT了。在xp中,ntoskrnl.exe通过KeServiceDescriptor的符号导出SSDT。故只需使用extern声明即可,该变量类型为SYSTEM_SERVICE_TABLE结构体。
typedef struct _SYSTEM_SERVICE_TABLE
{
PVOID ServiceTableBase; //这个指向系统服务函数地址表
PULONG ServiceCounterTableBase;
ULONG NumberOfService; //服务函数的个数
ULONG ParamTableBase;
} SYSTEM_SERVICE_TABLE,*PSYSTEM_SERVICE_TABLE;
SSDT Shadow
SSSDT中描述了UI相关的API在0环中的编号。没有导出。不过可以通过KeServiceDescriptor减去固定偏移(0x40)得到KeServiceDescriptorShadow的地址。




近期评论