windows内核情景分析学习笔记4
来源:互联网 发布:淘宝可以办假的毕业证 编辑:程序博客网 时间:2024/06/05 21:55
1、_KiSystemService()
_KiSystemService()是所有的系统调用入口函数。对应于中断向量0x2e。所以,当中间函数执行int 0x2e时,CPU就进入系统空间中的这个函数。
进入系统空间时,CPU自动将下列信息压入系统空间堆栈:
①用户空间的堆栈位置,包括SS和ESP的内容
②EFLAGS的内容
③用户空间指令位置,包括CS和EIP的内容
这些信息是将来返回用户空间所必须的。
2、快速系统调用
x86系列从P2开始增设了两条指令和三个寄存器用来用来实现快速系统调用。分别是:
sysenter和sysexit(对应于自陷方式中的int/call和iret/ret)
sysenter_cs_msr
sysenter_ip_msr
sysenter_esp_msr
快速系统调用实现更为高效。
采用快速系统调用的总入口时_KiFastCallEntry(对应于_KiSystemService)。
快速系统调用代码摘要:
其中,KUSER_SHARED_SYSCALL指向用户空间的一个地址(0x7ffe0300),这个位置存储了一个函数指针,指向KiIntSystemCall()或KiFastSystemCall()两个函数其中之一。
不难看出KiIntSystemCall()就是原先采用中断方式进入内核。
而KiFastSystemCall()则是采用快速系统调用进入内核。
快速系统调用流程图:
3、从内核中发起系统调用
在内核中不能直接调用NtReadFile之类的实现函数。一般也是通过中介函数进行调用。
以NtReadFile为例,其在内核中的中介函数由工具生成,其名称为ZwReadFile。
代码:
流程图:
- windows内核情景分析学习笔记4
- windows内核情景分析学习笔记1
- windows内核情景分析学习笔记2
- windows内核情景分析学习笔记3
- windows内核情景分析学习笔记5
- windows内核情景分析学习笔记6
- windows内核情景分析学习笔记7
- windows内核情景分析学习笔记8
- windows内核情景分析学习笔记9
- windows内核情景分析学习笔记10
- windows内核情景分析学习笔记11
- windows内核情景分析学习笔记12
- Windows内核情景分析学习笔记P38---P41
- windows内核情景分析笔记1.3 IRQL
- Windows内核情景分析 学习日志之一
- windows内核情景分析
- windows 内核情景分析---说明
- windows内核情景分析 --APC
- java邮件发送和短信发送(一)
- UML在集成和交付阶段的应用
- C语言平面几何12-向量方法判断线段与矩形是否有交集
- 编辑本段陈安之经典语录
- Spring配置文件中配置数据源(dataSource)
- windows内核情景分析学习笔记4
- 多行文本框如何限制输入字数方法
- Android 中的长度单位详解 dp、sp、px、in、pt、mm
- 新的Symbian OS 9 可执行文件格式(E32Image)
- 构造函数和变量初始化顺序
- 团购网站 购物js
- PKU 3537
- Running an Active Object in OpenC
- Windows CE S3C2440A显示驱动编码分析