从受限/来宾帐户禁用任务管理器

Posted

技术标签:

【中文标题】从受限/来宾帐户禁用任务管理器【英文标题】:Disable task manager from a limited / guest account 【发布时间】:2013-08-03 20:32:18 【问题描述】:

我正在用 c++ 开发一个应用程序,用户可以从中禁用应用程序内的任务管理器(以及更多功能)。 这是我在 Visual C++ 中的做法:

HKEY regHandle;

DWORD dwValue = 1;
BYTE* data = (BYTE*)&dwValue;

RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, NULL, NULL, KEY_WRITE | KEY_WOW64_32KEY,NULL , &regHandle ,NULL );
RegSetValueEx(regHandle,"DisableTaskmgr",0, REG_DWORD,data ,sizeof(DWORD));

它在管理员帐户中运行良好。但在受限用户帐户和访客帐户中,它不起作用。它试图将 UAC 级别更改为管理权限/最高可用。两者都没有工作。我还检查了我是否可以通过将 reg 值写入HKEY_LOCAL_MACHINE 来做到这一点。遗憾的是,这也失败了。

我用谷歌搜索了一番,并搜索了 ***,但没有找到解决方案。手动编辑组策略/注册表根本不是解决方案,我必须在需要时从我的应用程序内部进行。提前感谢您的帮助。

【问题讨论】:

能够在您没有权限的情况下编辑注册表将是一个相当大的安全漏洞,您不觉得吗?换句话说,您是在问“我如何绕过 Windows 中的安全性”,并希望人们告诉您(以防有人知道......)。 我会将该用户帐户的“拒绝执行”(或只是“全部拒绝”)记录添加到 TaskMan 可执行文件的 DACL。 @MatsPetersson ,我不认为这是一个安全漏洞。通常很少有应用程序需要禁用任务管理器。如果应用程序以受限帐户的管理员权限运行,为什么不这样做。这就是 windows 有 UAC 的原因吗? @Jaz:能够编辑您无权编辑的注册表项肯定是一个安全漏洞。能够从具有正确访问权限的帐户中禁止任务管理器并非如此。但是您最初的问题是关于“如何绕过注册表上的安全设置?”,我当然希望在 Windows 中没有任何方法可以做到,因为它会产生相当严重的安全后果。 @MatsPetersson:我想你没有得到我的问题。对不起,如果我不清楚。我的应用程序需要管理员权限才能运行。如果我需要在受限帐户中运行应用程序,我应该在 UAC 弹出窗口中输入管理员密码。所以它是在管理员权限下运行的,并且没有绕过 UAC。即使那样我也无法禁用任务管理器! 【参考方案1】:

我认为这是因为您正在通过注册表修改组策略选项:

但是组策略还没有生效。 Microsoft says you have to reboot.

可能会强制更新组策略

gpupdate /force

将使其生效。

这是您的安装程序会做的事情,然后提醒用户他们必须在安装完成之前重新启动计算机。或者也许,因为它只是 HKCurrentUser,注销和登录就可以了。

【讨论】:

以上是关于从受限/来宾帐户禁用任务管理器的主要内容,如果未能解决你的问题,请参考以下文章

禁用任务管理器时如何隐藏任务管理器的错误消息对话框

C# - 禁用任务管理器错误

完全禁用任务管理器的 Win32 API 是啥? [关闭]

Android - 是不是可以禁用长按主页按钮以避免任务管理器?

Win7系统任务管理器被禁用的解决方法系统天地

Win7系统任务管理器被禁用的解决方法系统天地