看流星社区

 找回密码
 注册账号
查看: 3075|回复: 8

KeServiceDescriptorTableShadow的获取

[复制链接]

该用户从未签到

发表于 2011-9-4 10:32:22 | 显示全部楼层 |阅读模式
如果没有KeServiceDescriptorTable,那么很多事情就会变得简单许多,我们只需要定义一个全局变量:

extern PSERVICE_Descriptor_TABLE    KeServiceDescriptorTable;

这样就能够引用KeServiceDescriptorTable了,就能够访问ntoskrnel下面所导出的所有函数。但是因为还有一些函数是通过win32k表导出的,这些函数都是win32k.sys的服务函数,所以要访问类似这些函数就得从shadow标结构中读取win32k表的EntryPoint。

因为KeServiceDescriptorTableShadow并不公开,所以需要从其他途径获取该结构表。现在用的比较多的一种方法是通过KeAddSystemServiceTable,遍历该函数的起始地址,查找有效内存地址(MmIsAddressValid)。因为shadow是涵盖了KeServiceDescriptorTable表的结构,在查找的过程中,就是采用和KeServiceDescriptorTable表进行匹配的方法,其中前16位需要匹配,而且两个表的起始地址不能相同(否则为同一张表),就是按照这种方法,查找获得shadow表。其实现函数如下:

游客,如果您要查看本帖隐藏内容请回复

该用户从未签到

发表于 2011-9-4 14:26:47 | 显示全部楼层
KeServiceDescriptorTableShadow的获取

该用户从未签到

发表于 2011-9-4 14:39:44 | 显示全部楼层
KeServiceDescriptorTableShadow的获取

该用户从未签到

发表于 2011-11-30 22:33:11 | 显示全部楼层
KeServiceDescriptorTableShadow的获取

该用户从未签到

发表于 2012-1-7 16:34:32 | 显示全部楼层
KeServiceDescriptorTableShadow的获取

该用户从未签到

发表于 2013-4-28 23:48:33 | 显示全部楼层
看看是什么呢

该用户从未签到

发表于 2013-9-23 12:00:36 | 显示全部楼层
再次路过!!!!!┈━═☆

该用户从未签到

发表于 2013-9-28 13:59:51 | 显示全部楼层
好东西啊,真是好东西,感谢楼主分享!谢谢!

该用户从未签到

发表于 2017-5-15 20:56:45 | 显示全部楼层
要了1111111111111
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-16 20:59

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表