【问题标题】:How does task manager elevate without UAC Prompt?没有 UAC 提示,任务管理器如何提升?
【发布时间】:2014-09-17 21:06:44
【问题描述】:

这件事一直在我脑海里。我可以通过按 Ctrl + Shift + Esc 打开任务管理器,然后在第二个选项卡(进程)上,我可以轻松按 Alt + S -- 显示所有用户的进程以提升我的任务管理器没有任何提示。瞧,我有一个强大的工具可以玩。我一直找不到任何文件来解释这一点,我很好奇这一壮举是如何实现的;因为按钮实际上应该要求提示,但没有。

【问题讨论】:

  • @KenWhite 你是说 Ctrl + Shift + Esc 实际上运行 TaskManager 具有管理员权限
  • 这是一个有趣的观察,但我不知道它与 C# 有什么关系。
  • @KenWhite 他的观点是 UAC 阻止进程以管理员权限启动,除非特别授予。您不能只打开一个以具有管理员权限的帐户登录的普通应用程序并具有管理访问权限,而无需提升访问权限并点击 UAC 提示符。
  • @KenWhite 你似乎没有抓住重点——Taskmgr 是我所知道的唯一可以在没有 UAC 提示的情况下运行提升命令的程序。
  • Microsoft 已将 Windows 中包含的大多数程序列入白名单,无需在默认设置下显示 UAC 提示,因为这比正确实现 UAC 支持更容易。当然,所有其他应用程序仍然需要处理它。如果你将 UAC 调到最大,它仍然需要提示。

标签: winapi uac elevation moniker undocumented-behavior


【解决方案1】:

您所描述的内容称为Auto Elevation。它不仅仅是由任务管理器完成的,但没有办法让你的程序做到这一点。要自动提升必须满足以下要求。

  1. <autoElevate>true</autoElevate> 必须在程序集清单中。
  2. 它必须位于少数“安全”目录之一。安全目录是标准用户无法修改的目录,其中包括%SystemRoot%\System32 及其大部分子目录%SystemRoot%\Ehome,以及%ProgramFiles% 下的少数目录,包括Windows Defender 和Windows Journal。
  3. 它必须由 Windows 发布者进行数字签名,这是用于签署 Windows 随附的所有代码的证书(由 Microsoft 签名是不够的,因此不包括 Windows 中未提供的 Microsoft 软件)李>

您可以自己完成第 1 和第 2 项,但您无法满足要求 3。

【讨论】:

  • 有趣,谢谢!不过我认为 2 是不必要的。
  • 请注意,这会在 Windows 中使用默认设置生成 gaping security hole
  • @JonathanPotter 提出了一个很好的观点;这是您应该使用标准用户帐户的原因之一。 UAC 是一个减速带,而不是一堵墙。
  • 这太可怕了,我很高兴我问了这个问题。希望这可能已在 Windows 8 中得到修复。
  • 您可以通过将 UAC 恢复为 Vista 默认设置来解决WriteProcessMemory 漏洞:"Always notify me when..."
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
  • 2010-10-29
  • 2013-12-04
  • 2011-02-11
  • 2015-10-28
相关资源
最近更新 更多