在WRK中找到KeServiceDescriptorTable的定义:
typedef struct _KSERVICE_TABLE_DESCRIPTOR {
PULONG_PTR Base;
PULONG Count;
ULONG Limit;
PUCHAR Number;
} KSERVICE_TABLE_DESCRIPTOR, *PKSERVICE_TABLE_DESCRIPTOR;
extern KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable[NUMBER_SERVICE_TABLES];
请问ULONG Limit和PUCHAR Number分别定义的是什么?
网上关于导出的关于KeServiceDescriptorTable的结构很多的自定义都是:
typedef struct _KeServiceDescriptorTable
{
PVOID ServiceTableBase; // 指向_KiServiceTable表地址
PULONG ServiceCounterTableBase; // 指向调用次数表地址
ULONG NumberOfService; // 函数个数
PULONG ParamTableBase; //指向参数表地址
}KeServiceDescriptorTable,*PKeServiceDescriptorTable;
那么在这个自定义的结构中的4个成员变量和WRK中关于KeServiceDescriptorTable定义的结构的四个成员变量有什么样的对应关系,定义的时候4个成员顺序是不是需要与WRK中的顺序一致?
------解决方案--------------------
这两个结构体应该是一样的