在C ++中获得ring 0模式(Windows)

我如何在Windows 7(或Vista)中获得响铃0操作模式?

允许任意代码在ring 0中运行违反了基本的操作系统安全原则。

只有OS内核和设备驱动程序在环0中运行。如果要编写环0代码,请编写Windows设备驱动程序。 这可能会有所帮助。

某些安全漏洞可能允许您的代码在ring 0中运行,但这不是可移植的,因为该漏洞可能被修补为一个补丁:P

从技术上讲,所有进程都有一些线程花费一些时间在内核模式(环0)。 每当用户模式进程在系统中创建一个系统调用时,就有一个线程通过一个“门”进入环0的转换。 每当一个进程需要与一个设备对话,分配更多进程内存,或产生新的线程,系统调用被用来要求操作系统提供这项服务。

因此,如果你想让一个进程在ring 0中运行一些代码,你需要编写一个驱动程序,然后通过一些系统调用与这个驱动程序进行通信。 最常见的系统调用称为ioctl(代表I / O控制)。

UMDF(User-Mode Driver Framework,用户模式驱动程序框架)是Windows平台上需要考虑的另一件事。 这允许您以用户模式(在环3中运行)编写,调试和测试驱动程序,但系统中的其他驱动程序或其他进程仍可访问该驱动程序。

您不能从用户模式进程设置内核模式。 这就是安全的工作原理。