UAC 是一个由多个二进制文件实现的多组件架构

UAC 是一个由多个二进制文件实现的多组件架构

System32 文件夹中是否有负责 Windows UAC 功能的二进制文件 (.exe)?(例如uac.exe)。如果该文件被强制删除会发生什么?Windows 会崩溃或无法启动吗?

这里没有 XY 问题;我只是好奇如果强制从 PC 中删除 UAC 会发生什么。

答案1

UAC 是一个由多个二进制文件实现的多组件架构

用户帐户控制(UAC)是指几个组件共同构成UAC 架构我将简要回顾其中的一些以及负责实现它们的二进制文件,但首先我们来看一下 Microsoft Docs 文章中关于 UAC 架构的概述用户帐户控制的工作原理

在此处输入图片描述

本地安全机构 (LSA)/过滤令牌

从概念上讲,UAC 的“第一个”组件由本地安全机构子系统处理用户的创建访问令牌在登录过程中。从 Windows Vista 开始,登录过程进行了修改,以便当管理员在启用 UAC 的情况下登录时,LSA 子系统会为用户生成两个单独的访问令牌:

  1. 一名具有完全管理员访问权限的人,以及
  2. 具有标准用户访问权限的第二个“过滤令牌”

如下所示,此过程与标准用户登录过程不同:

在此处输入图片描述

LSA 子系统服务存在于该lsass.exe进程中。

虚拟化

在 Windows 7 中添加,文件和注册表虚拟化是 UAC 的一个组件,垫片不符合 UAC 要求的旧应用程序只需要管理权限即可访问文件系统或注册表的某些受保护区域:

当不符合 UAC 的管理应用程序尝试写入受保护的目录(如 Program Files)时,UAC 会为该应用程序提供其试图更改的资源的虚拟化视图。虚拟化副本保存在用户的配置文件中。

来源

通过将这些访问尝试重定向到不需要管理员权限的区域,尽管系统上启用了 UAC,这些应用程序仍可继续运行。

这种虚拟化在内核中实现

应用信息服务

应用程序信息服务 (AIS) 读取应用程序的清单并与 UAC 同意提示配合使用,以确定是否允许应用程序以提升的权限执行(即在登录时创建的非过滤管理级访问令牌的上下文中启动)。这博客文章很好地概述了其在 UAC 流程中的作用:

AIS 促进具有额外管理权限的交互式应用程序的运行。如果此服务停止,用户将无法使用他们可能需要的额外管理权限启动应用程序....shell 在启动应用程序时会检查此服务。AIS 是读取清单和具有“requestedExecutionLevel”要求的“trustInfo”xml 部分的人...

下面的图表详细说明了 AIS 在 UAC 同意提示过程中所起的作用:

在此处输入图片描述

AIS 是在 DLL 中实现appinfo.dll由 执行svchost.exe

同意提示

@BenN 的回答解释了臭名昭著的 UAC 同意提示的关键作用。它实现consent.exe并负责获取用户的同意或管理用户的凭据,以允许启动需要管理员权限的应用程序。

安全桌面

安全桌面是默认显示 UAC 同意提示的地方。微软的 UACBlog告诉我们此桌面与用户桌面相比有何独特之处:

由于登录 UI 在安全桌面上运行,因此您登录 Windows 时最常与 [安全桌面] 交互。安全桌面与用户桌面的主要区别在于,只有以 SYSTEM 身份运行的受信任进程才允许在此处运行(即,不以用户权限级别运行任何进程),并且从用户桌面到安全桌面的路径也必须在整个链中都受信任。

在请求用户同意以提升的权限运行应用程序时使用它的想法是,恶意软件无法模仿安全桌面,除非它已经具有管理权限,在这种情况下,诱骗用户授予这些权限是没有意义的。


结论:UAC 不只是一个二进制文件。它是相互交织的子系统的结构。

这里没有涉及 UAC 架构的其他方面,但这应该为以下事实提供足够的证据:

  1. UAC 不是在单个二进制文件中实现的。
  2. 如果启用,它就是执行管理任务的一个组成部分。

Windows Vista 中的介绍它已经深度集成到操作系统的关键部分,因此删除所有负责 UAC 的代码而不破坏其他功能(例如您的登录能力!)是不可行的。

我认为可以肯定地说,如果您“强制删除”UAC,您将会破坏Windows。

答案2

正如 Twisty 出色地解释的那样, 有很多帮助实现 UAC 的组件。人们最熟悉的 UAC 部分是提升/同意对话框:

这是由consent.exe“管理应用程序的同意 UI”提供的。我尝试在虚拟机中重命名它,看看会发生什么。正如预期的那样,使用“以管理员身份运行”时不会出现提升权限的提示 — 相反,您会收到一个文件未找到错误,该错误归咎于您尝试提升权限的内容:

未找到

尝试使用任何需要提升权限的控制面板 UI 元素(即具有盾牌图标),即使以管理员身份登录,也会失败并出现类似错误。尝试从“开始”菜单启动管理功能会产生略有不同的错误:

没有关联应用程序

根据执行重命名时设置的 ACL 破坏了一切,可能无法从操作系统内部修复此问题,因为文件操作可能需要提升权限(即使它们通常不会产生同意对话框)。不过,普通用户的活动似乎并没有降级。

相关内容