KeServiceDescriptorTableShadow的获取
如果没有KeServiceDescriptorTable,那么很多事情就会变得简单许多,我们只需要定义一个全局变量:extern PSERVICE_Descriptor_TABLE KeServiceDescriptorTable;
这样就能够引用KeServiceDescriptorTable了,就能够访问ntoskrnel下面所导出的所有函数。但是因为还有一些函数是通过win32k表导出的,这些函数都是win32k.sys的服务函数,所以要访问类似这些函数就得从shadow标结构中读取win32k表的EntryPoint。
因为KeServiceDescriptorTableShadow并不公开,所以需要从其他途径获取该结构表。现在用的比较多的一种方法是通过KeAddSystemServiceTable,遍历该函数的起始地址,查找有效内存地址(MmIsAddressValid)。因为shadow是涵盖了KeServiceDescriptorTable表的结构,在查找的过程中,就是采用和KeServiceDescriptorTable表进行匹配的方法,其中前16位需要匹配,而且两个表的起始地址不能相同(否则为同一张表),就是按照这种方法,查找获得shadow表。其实现函数如下:
**** Hidden Message ***** KeServiceDescriptorTableShadow的获取 KeServiceDescriptorTableShadow的获取 KeServiceDescriptorTableShadow的获取 KeServiceDescriptorTableShadow的获取 看看是什么呢 再次路过!!!!!┈━═☆ 好东西啊,真是好东西,感谢楼主分享!谢谢! 要了1111111111111
页:
[1]