TCP IP技术中用户模式与核心模式权限及应用分析.pdfVIP

  • 0
  • 0
  • 约2.37千字
  • 约 24页
  • 2026-03-07 发布于北京
  • 举报

TCP IP技术中用户模式与核心模式权限及应用分析.pdf

从Intel80386开始,出于安全性和稳定性的考虑,该

系列的CPU可以运行于ring0~ring3从高到低四个不

同的权限级,对数据也相应的四个保护级别。运

行于较低级别的代码不能随意调用高级别的代码和访

问较高级别的数据,而且也只有运行在ring0层的代码

可以直接对硬件进行。

第1页

•由于WindowsNT是一个支持多平台的操作系统,为了与其他平

台兼容,它只利用了CPU的两个运行级别。一个被称为内核模

式,对应80x86的ring0层,是操作系统的部分,设备驱动程

序就是运行在该模式下;另一个被称为用户模式,对应80x86的

ring3层,操作系统的用户接口部分(就是我们通常所说的

win32API)以及所有的用户应用程序都运行在该级别。操作系

统对运行在内核模式下的代码是不设防的,所以不管是建设还是

破坏内核模式下的编程都是值得去研究的。

第2页

第3页

•用户态与态驱动程序的区别

用户态的驱动程序运行在非处理机模式(nonprivileged

processormode)上,其他一些被保护的子系统代码也运行在

该模式上。用户态的驱动程序不能获得系统数据的存取权,除

非调用Win32API或者系统服务。

态驱动程序作为操作系统的一个组成部分被执行——支

持一个或多个受保护的子系统的操作系统底层组件。

第4页

•用户态和态驱动程序有不同的结构,不同的

点和不同的系统接口。一个设备是需要一个用户态驱

动程序还是需要一个态驱动程序依赖于该设备的

类型和操作系统对它的支持。

•一些设备驱动程序可以完全地或部分地运行在用户态。

用户态驱动程序没有堆栈空间的限制,可以

Win32API,并且容易调试。比如驱动。

第5页

•大多设备驱动程序运行在态。态驱动程序可

以完成某些受保护的操作,并且可以用户态驱动

程序不能的系统结构体(systemsturcture)。然

而,权限的提高当然也要付出相应的代价——调

试的艰难,系统随时毁坏的。当代码运行在

有的态环境中时,操作系统对代码所请求的

数据的完整性和有效性的检查将大大减少。

第6页

•我们应该用高级语言(high-level

language)来编写驱动程序,通常,C适

合用来编写态驱动程序,C或C++则

适合用于编写用户态驱动程序。

第7页

•用户模式与内核模式是如何交互的呢

当用户模式程序需要设备数据时,它就调用

Win32API函数,如ReadFile。Win32子系统模块(如

KERNEL32.DLL)通过调用平台相关的系统服务接口

实现该API,而平台相关的系统服务将调用内核模式

支持例程。

第8页

•在ReadFile调用中,调用首先到达系统

DLL(NTDLL.DLL)中的一个点,NtReadFile函数。

然后这个用户模式的NtReadFile函数接着调用系统服

务接口,最后由系统服务接口调用内核模式中的服务

例程,该例程同样名为NtReadFile。

第9页

•系统中还有许多与NtReadFile相似的服务例程,它们

同样运行在内核模式中,为应用程序请求服务,

并以某种方式与设备交互。它们首先检查传递给它们

的参数以保护系统安全或防止用户模式程序存取

数据,然后创建一个称为“I/O请求包(IRP)”的数据结

构,并把这个数据结构送到某个驱动程序的点。

第10页

•在ReadFile调用中,NtReadFile将创建一个主功能代码为

文档评论(0)

1亿VIP精品文档

相关文档