WINDOWS内核学习笔记1—Shadow SSDT表
来源:互联网 发布:java 执行字符串代码 编辑:程序博客网 时间:2024/05/22 11:58
近期学习内核的东西,感觉会忘记,记录一下学习过程的收获,日后也方便查找。
1.关于Shadow SSDT表
系统中一共有两个SDT,一个是ServiceDescriptorTable,另一个是ServiceDescriptorTableShadow。ServiceDescriptor中只有指向KiServiceTable的SST,而ServiceDescriptorTableShadow则包含了所有的两个SST。SSDT是可以访问的,而SSDTShadow是不公开的。如何在WINDBG下查看Shadow SSDT,参考:http://blog.csdn.net/gaara_fan/article/details/6277657
2.取Shadow SSDT表地址的4种方法
KeServiceDescriptorTableShadow包含4个子结构,其中第一个就是ntoskrnl.exe,和SSDT指向一样,第二个win32k.sys,我们需要的就是这个,第三第四个一般不用。
同一操作系统中SSDT表和ShadowSSDT表的偏移大小相同。
#define VERSION_2K 50#define VERSION_XP 51
ULONG GetVersion(){ULONG rtn=0;ULONG MajorVer,MinVer,BuildNumber;PsGetVersion(&MajorVer,&MinVer,&BuildNumber,NULL);rtn=MajorVer;rtn=rtn*10;rtn+=MinVer;return rtn;}ULONG GetSSDTShadow_Addr(){ULONG SSDTShadow_Addr=0;ULONG Version=GetVersion();KdPrint(("version:%d",Version));switch(Version){case VERSION_2K:break;case VERSION_XP:SSDTShadow_Addr=(ULONG)KeServiceDescriptorTable-0x40; //XP系统下break;}KdPrint(("SSDTShadow_Addr:%x\n",SSDTShadow_Addr));return SSDTShadow_Addr;}
这里只给出其中一种方法,其他的可参考百度文库:http://wenku.baidu.com/link?url=wpnM25THNZX-YI6xQxCP33HL-Ts6HyMXm6ibtx-jyXPi6HdyV85MCOV01iPTL92dasj5t1e-lMi_ZUuhoK-CXkdrRHfrGbEXDTfsrrQljaG
0 0
- WINDOWS内核学习笔记1—Shadow SSDT表
- shadow ssdt学习笔记
- shadow ssdt学习笔记
- shadow ssdt学习笔记
- shadow ssdt学习笔记
- Windows内核新手上路2——挂钩shadow SSDT
- Windows内核新手上路2——挂钩shadow SSDT
- Windows内核新手上路2——挂钩shadow SSDT
- Windows内核新手上路2——挂钩shadow SSDT
- 转shadow ssdt学习笔记
- shadow ssdt学习笔记(一)
- shadow ssdt学习笔记(一)
- shadow ssdt学习笔记(二)
- shadow ssdt学习笔记(一)(二)
- 【原创】shadow ssdt学习笔记(一)
- 【原创】shadow ssdt学习笔记(二)
- 【原创】shadow ssdt学习笔记(一)(二)
- shadow ssdt学习笔记(一)(二)
- Unable to add window -- token android.app.LocalActivityManager$Loc
- Scrapy Jobs: 暂停,恢复爬虫
- Contact Form 7邮件发送失败的解决办法
- String与Object相互转换
- Mysql学习2
- WINDOWS内核学习笔记1—Shadow SSDT表
- [C++] 自动关闭右下角弹窗
- Mysql学习3
- 移动互联网时代的9大赚钱机会
- 查找命令
- 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
- 那年时光机里的许愿石
- linux iptables端口映射设置
- STL- stack 基本用法