本文介绍了[Security Vulurability]通过Process.Start()直接调用regedit的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我偶然发现了绕过UAC的可能方法,这似乎很麻烦。
通常在程序上将值插入注册表的某些部分需要UAC Elevation在目标计算机上具有管理权限的用户。对吗?
话虽如此,我能做到吗?以下代码适用于Windows 8 AS-IS上的.NET 4.5。
I've stumbled accross a possible way to bypass UAC which seems kind of troublesome.
Normally inserting values into certain portions of the registry programmaticly requires UAC Elevation to a user with administrative priveledges on the target machine. Right?
That being said, should I be able to do this? The following code works under NET 4.5 on Windows 8 AS-IS.
<br />
<pre lang="cs">public void DisableTaskManager()<br />
{<br />
try<br />
{<br />
if (File.Exists("DisableTaskManager.reg"))<br />
{<br />
File.Delete("DisableTaskManager.reg");<br />
}<br />
using (FileStream registryFileStream = File.Create("DisableTaskManager.reg"))<br />
{<br />
Byte[] registryFileContents = new UTF8Encoding(true).GetBytes(Properties.Resources.DisableTaskManager);<br />
registryFileStream.Write(registryFileContents, 0, registryFileContents.Length);<br />
registryFileStream.Close();<br />
}<br />
}<br />
catch (Exception Ex)<br />
{<br />
MessageBox.Show(Ex.ToString());<br />
}<br />
try<br />
{<br />
ProcessStartInfo startInfo = new ProcessStartInfo();<br />
startInfo.FileName = "regedit";<br />
startInfo.Arguments = "/s DisableTaskManager.reg";<br />
Process.Start(startInfo);<br />
}<br />
catch (Exception Ex)<br />
{<br />
MessageBox.Show(Ex.ToString());<br />
}<br />
}</pre><br />
<br />
Is this something I'm missing, or is this another gross example of Microsoft security negligence?
推荐答案
- 总是在......时通知我。
- 默认 - 仅在程序尝试更改计算机时通知我
当我更改Windows设置时,请勿通知我。 - [与上面相同添加不要使我的桌面变暗]
- 从不通知我...
我尝试了#1和#2(默认)。在这两种情况下,UAC对话都要求我。通常,我个人使用选项#1始终通知...。
您确定在Windows 8上使用相同或同等级别的UAC通知吗?
这篇关于[Security Vulurability]通过Process.Start()直接调用regedit的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!