Windows内核模式又称SYSTEM权限?

时间:2014-08-03 18:27:39

标签: windows

我是否可以说在SYSTEM权限下运行的进程(例如,cmd.exe)在内核模式下运行?

我的意思是,这些概念(在SYSTEM权限下运行的进程和在内核模式下运行的进程)是等效的吗?

2 个答案:

答案 0 :(得分:2)

我不相信SYSTEM privilege是一个公认的术语。您可以要求系统提升,如果被授予,则允许您在文件系统和其他地方执行某些操作,否则您将无法执行这些操作,但这是用户帐户/访问权限概念。 Windows服务经常运行的系统帐户,其权限通常与普通登录​​用户的权限不同。

内核模式是O / S内核和大多数设备驱动程序执行的CPU保护模式。在内核模式下,对内存覆盖的保护很少或没有,等等,所以单独使用是不切实际的应用程序在该模式下运行,但因为检查内核模式比用户模式更快。所有应用程序(包括cmd.exe)都以用户模式执行。

答案 1 :(得分:1)

没有。系统进程是一种特殊情况,但所有其他进程都以用户模式运行,即使它们在SYSTEM上下文中运行。

每个用户模式进程都有自己的地址空间。内核有一个单独的地址空间,只能由内核模式代码访问。用户模式进程中的大多数线程都以用户模式(从进程运行代码时)和内核模式(从内核运行代码时)运行。

作为调用Windows API函数的结果,或者由于外部事件,线程可能进入内核模式:当设备驱动程序需要处理interruptDPC时,代码在当时正好处于活动状态的任何线程的上下文中运行。这避免了上下文切换的开销,但意味着此类代码必须能够在任意上下文中运行。

(内核模式代码可以绕过安全模型,但必须注意不要将此访问泄露给它正在运行的用户模式进程。例如,如果内核模式代码在上下文中运行任意线程打开句柄,它必须将其标记为仅内核句柄;否则,用户模式进程可以访问它。)

系统流程是一个特例;它的线程run only in kernel mode。这允许设备驱动程序和内核进行不直接响应外部事件的后台处理。设备驱动程序也可以在用户模式进程中创建内核模式线程。

虽然它们仍在用户模式下运行,但作为SYSTEM 运行的进程给定的权限不是(在默认配置中)给予在管理上下文中运行的进程。例如,他们有SeTcbPrivilege(“作为操作系统的一部分”),它允许他们做一些事情,比如使用SetTokenInformation来改变与安全令牌相关的远程桌面会话。