Windows XP : Have my program run in kernel mode?

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

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

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

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

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

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

最佳答案

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

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

开始的第一步是下载最新的 Windows 驱动程序工具包 (WDK) 并开始阅读文档。如果您想要一本更容易理解的书,请选择以下其中一本:

  1. Windows NT 设备驱动程序开发 - 虽然是一个旧标题,但许多基础知识仍然适用。
  2. 对 Windows 驱动程序模型进行编程(作者:Oney) - 特别是 WDM 编程,也涵盖基础知识,但有一些错误(与大多数书籍一样)。
  3. Undocumented Windows 2000 Secrets(Schreiber 着)- 包含有关各种内部结构的大量信息,其技术水平比之前提到的书更高。
  4. 未记录的 Windows NT - 包含有关技术级别内部结构的更通用部分,后面是一些 native API 函数的引用。
  5. Windows NT/2000 Native API - 经典,但更多的是引用。尽管如此,其中还是有一些精华(和例子)。

由于您想使用 Windows XP,rootkit.com 上描述的许多技术(甚至是几年前的技术)都应该有效。他们还得到了大量 sample 。

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

关于Windows XP : Have my program run in kernel mode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672712/

相关文章:

vbscript - 如何使用 native Windows XP 功能以编程方式将图像文件转换为 BMP?

python - 有没有比 PIL.ImageGrab.grab() 更好的截屏方式?

keyboard - x86 组件上的保护模式键盘访问

windows - 如何自动更改文件内容?

java - 通过 Windows 7 控制台打开 SBT 时出现问题

c# - 使用 C# 和参数运行 cmd

windows - 以提示方式编写但未执行的批处理窗口命令

windows-vista - 在安装过程中,Vista中各种文件类型在哪里运行

assembly - 在 ds 中移动 0x18 后,QEMU 寄存器和 eip 被破坏