Windows XP:我的程序是否以内核模式运行?

时间:2011-01-12 18:49:37

标签: windows windows-xp protected-mode kernel-mode

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

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

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

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

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

3 个答案:

答案 0 :(得分:3)

“Windows Internals”一书中涉及的主题相当浅薄。

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

入门的第一步是下载最新的Windows驱动程序工具包(WDK)并开始阅读文档。如果你想要一本更消化的书,请选择其中一种:

  1. Windows NT设备驱动程序开发 - 虽然是旧标题,但许多基础知识仍然适用。
  2. 对Windows驱动程序模型进行编程(由Oney编写) - 特别是WDM编程,也涵盖了基础知识,有一些错误(与大多数书籍一样)。
  3. 未记载的Windows 2000 Secrets(由Schreiber提供) - 包含大量有关各种内部信息的信息,其技术水平比前面提到的更为简单。
  4. 未记录的Windows NT - 在技术层面上包含有关内部部件的更通用部分,后面是一些本机API函数的引用。
  5. Windows NT / 2000 Native API - 经典,但它更像是一个参考。然而,其中有几个宝石(和例子)。
  6. 由于您要使用Windows XP,因此在rootkit.com上描述的许多技术(即使是几年前)也应该有效。他们也有很多样品。

    正如您在引用网站的名称中所注意到的那样,您实际上就是我称之为灰色区域的问题;)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您需要很好地了解Windows Internals:

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

基本上你的问题都在本书中得到了解答(甚至还有样品和动手实验室)。