- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SSDTHOOK基本原理与实例介绍.pdf
南邮王下邀月熊·HOOK学习笔记之Ring0 下SSDTHOOK
SSDTHOOK
SSDTHOOK
SSSSDDTTHHOOOOKK
SSDT
SSDT
SSSSDDTT 基本概念
SSDT 既 System Service Dispath Table。在 Windows NT 下,NT 的 executive
(NTOSKRNL.EXE 的一部分)提供了核心系统服务。各种 Win32、OS/2 和 POSIX 的
APIs 都是以 DLL 的形式提供的。这些dll 中的 APIs 转过来调用了 NTexecutive 提供的
服务。尽管调用了相同的系统服务,但由于子系统不同,API 函数的函数名也不同。例如,
要用Win32API 打开一个文件,应用程序会调用 CreateFile(),而要用 POSIXAPI,则应
用程序调用 open() 函数。这两种应用程序最终都会调用 NT executive 中的
NtCreateFile() 系统服务。
用户模式(User mode)的所有调用,如Kernel32,User32.dll, Advapi32.dll 等提供的
API,最终都封装在Ntdll.dll 中,然后通过Int 2E 或SYSENTER 进入到内核模式,通过服务
ID,在System Service Dispatcher Table 中分派系统函数,举个具体的例子,再如下图
南邮王下邀月熊·HOOK学习笔记之Ring0 下SSDTHOOK
SSDT 就是一个表,这个表中有内核调用的函数地址。从上图可见,当用户层调用
FindNextFile 函数时,最终会调用内核层的NtQueryDirectoryFile 函数,而这个函数的地址
就在SSDT 表中,如果我们事先把这个地址改成我们特定函数的地址,那么,哈哈。。。。。。。
下来详细了解一下,SSDT 的结构,如下图:
KeServiceDescriptorTable:是由内核(Ntoskrnl.exe)导出的一个表,这个表是访问
SSDT 的关键,具体结构是
typedef struct ServiceDescriptorTable {
PVOID ServiceTableBase;
PVOID ServiceCounterTable(0);
unsigned int NumberOfServices;
PVOID ParamTableBase;
}
其中,
南邮王下邀月熊·HOOK学习笔记之Ring0 下SSDTHOOK
ServiceTableBase System Service Dispatch Table 的基地址。
NumberOfServices 由 ServiceTableBase 描述的服务的数目。
ServiceCounterTable 此域用于操作系统的 checked builds,包含着 SSDT 中每个服务被
调用次数的计数器。这个计数器由 INT 2Eh 处理程序 (KiSystemService)更新。
ParamTableBase 包含每个系统服务参数字节数表的基地址。
System Service Dispath Table(SSDT):系统服务分发表,给出了服务函数的地址,每个
地址4子节长。
System Service Parameter Table(SSPT):系统服务参数表,定义了对应函数的参数字节,
每个函数对应一个字节。如在0x804AB3BF 处的函数需0x18 字节的参数。
还有一种这样的表,叫KeServiceDescriptorTableShadow,它主要包含GDI 服务,也
就是我们常用的和窗口,桌面有关的,具体存在于Win32k.sys。在如图:
右侧的服务分发就通过KeServiceDescriptorTableShadow。
HOOK
HOOK
HHOOOOKK 步骤:
(1)改变SSDT 内存的保护:
系统对SSDT 都是只读的,不能写。如果试图去写,等你的就是蓝脸。一般可以修改
内存属性的方法有:通过cr0寄存器及Memory Descriptor List(MDL)
(1)改变CR0 寄存器的第1位
Windows 对内存的分配,是采用的分页管理。其中有个CR0 寄存器,如下图:
南邮王下邀月熊·HOOK学习笔记之Ring0 下SSDTHOOK
其中第1 位
您可能关注的文档
- (Ss)句子成分,结构,基本句型,错误分析.doc
- (严)英语专业四级考试听写错误及训练策略.pdf
- (简体)中文书名选对炒股时间点.doc
- (诚实)对不起,我错了.pdf
- (陈志仁)唯物辩证法与企业管理.doc
- AA动泊车系统声音提示异常的技术信息.pdf
- ACMICPC常见错误类型.pdf
- ACOPOS_Error_Code_CN_贝加莱.pdf
- ADCP基本原理及应用.pdf
- AdobeWord转换为Pdf出错以及Word中不能转换为Pdf的解决办法.pdf
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 煤矿一通三防PPT课件.pptx VIP
- 误吸预防与护理课件(1).pptx VIP
- 深圳清华实验学校语文新初一分班试卷.doc VIP
- 系列电动缸内容简介2特点规格产品手册18942et.pdf VIP
- 风湿免疫学课件.pptx VIP
- JVC摄像机EX-A10UF用户手册.pdf
- 高中数学 第一章 常用逻辑用语 1.3 充分条件、必要条件与命题的四种形式 1.3.1 推出与充分条件、必要条件课件 新人教B版选修1-1课件.ppt VIP
- 深圳清华实验学校新初一分班语文试卷.doc VIP
- 心肺复苏操作培训课件.ppt VIP
- 2025年高考复习之小题狂练(语言文字运用):语用2(30题).doc VIP
文档评论(0)