2

我目前正在了解 Windows 操作系统运行的不同模式(内核模式与用户模式)、设备驱动程序、它们各自的优缺点以及总体上的计算机安全性。

我想创建一个实际示例,说明在内核模式下运行的故障设备驱动程序会对系统造成什么影响,例如破坏用于关键操作系统进程的内存。

  • 如何直接在内核模式而不是用户模式下执行我的代码?
  • 我是否必须编写一个虚拟设备驱动程序并安装它才能做到这一点?

  • 在哪里可以阅读有关 Windows 中内核和用户模式的更多信息?

我知道这样做的危险,并将在仅运行 Windows XP 的虚拟机上进行所有实验

4

3 回答 3

3

“Windows Internals”一书对所讨论的主题相当肤浅。

首先我应该注意到任何程序运行在内核模式(KM)下。这是因为 - 与 unixoid 系统不同 - 对于系统调用,调用线程转换为 KM,其中内核本身或驱动程序之一为请求提供服务,然后返回到用户模式 ​​(UM)。

开始的第一步是下载最新的 Windows Driver Kit (WDK) 并开始阅读文档。如果您想要一本更易消化的书,请选择其中之一:

  1. Windows NT 设备驱动程序开发 - 虽然是一个旧名称,但许多基础知识仍然适用。
  2. Programming the Windows Driver Model (by Oney) - 特别是 WDM 编程,还涵盖了基础知识,有一些错误(与大多数书籍一样)。
  3. Undocumented Windows 2000 Secrets (by Schreiber) - 包含大量关于各种内部结构的信息,其技术水平比前面提到的书要高。
  4. 未记录的 Windows NT - 包含关于技术层面内部的更通用部分,然后是一些本机 API 函数的参考。
  5. Windows NT/2000 Native API - 经典,但更多的是参考。尽管如此,它还是有几个宝石(和例子)。

由于您想使用 Windows XP,因此 rootkit.com 上描述的许多技术(甚至是几年前的技术)应该可以工作。他们也得到了很多样品。

正如您通过所引用网站的名称所注意到的那样,您实际上处于我所说的带有该问题的灰色区域;)

于 2011-02-12T16:11:48.327 回答
0

您需要对 Windows 内部有一个很好的了解:

http://technet.microsoft.com/en-us/sysinternals

是的,他们有一本书:Windows Internals

http://technet.microsoft.com/en-us/sysinternals/bb963901

http://www.amazon.com/Windows%C2%AE-Internals-Including-Windows-PRO-Developer/dp/0735625301

基本上你的问题都在本书中得到了解答(甚至还附带了示例和动手实验)。

于 2011-01-13T02:29:48.170 回答
0

这是一个简单的答案,正如您所怀疑的,您确实需要编写设备驱动程序才能在内核模式下运行。恐怕我不知道内核模式编程的特别好的参考,但快速的网络搜索显示:

于 2011-01-12T18:51:14.280 回答