-
-
SSDT函数名和服务号的关系 懂得来看下 谢谢
-
发表于:
2010-12-4 20:25
5246
-
#define GetSystemFunc(FuncName) KeServiceDescriptorTable.ServiceTableBase[*(PULONG)((PUCHAR)FuncName+1)]
中括号里面是内核api的服务号或者一个索引号
我有点疑惑,通过上面的宏可以先获得索引号,进而获得这个函数在SSDT表中的地址
我们假设这个地址为SSDT_FUN_ADDRESS
实际上一个函数的名字,也可以表达这个函数的地址 我们假设FUN_ADDRESS
那么这两者时间有什么关系呢,如果要hook函数,直接用FUN_ADDRESS不是更快捷,因为他的地址就是他的名字
但是实际上我打印了下,他们的结果是不同的
请问他们的联系?
DbgPrint("fun:%x\n",(ULONG)ZwTerminateProcess);
DbgPrint("ssdtfun:%x",GetSystemFunc(ZwTerminateProcess));
[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!