论文部分内容阅读
1.自制批处理让默认需提权的程序以标准权限运行
如上所述,一些程序安装后默认需要使用UAC的提权方式运行,它们的目的当然是为了能在后台随意地修改你的系统设置或文件,这很容易给系统带来安全隐患。比如某游戏程序的安装路径是“C:\Program Files(x 8 6)\We G ame\We g ame .exe”,安装后可以看到这是一个需要提权才能运行的程序,在程序的图标(或快捷方式)右下角会自带一个蓝色盾牌标记,为了便于描述,下面称这类程序为“盾牌程序”(图1)。
这样在默认情况下只能以管理员身份运行,我们只能在弹出UAC拦截时被动地点击“是”提权运行,如果点击“否”则会自动关闭程序(图2)。
那么怎么判断“盾牌程序”是否是以提权方式运行的呢?可以借助任务管理器来查看。如在图2所示的界面中点击“是”运行程序,接着启动任务管理器,切换到“详细信息”,然后在“PID”上右击并选择“显示列”,在打开的“选择列”窗口中勾选其中的“特权”。返回任务管理器,便可以看到“wegame.exe”进程的“特权”下显示的值为“是”,表示其运行在特权状态下,程序是通过UAC提权运行的(图3)。
实际上这些程序是可以在正常权限下运行的。不过,我们需要通过自制批处理才可以实现。首先启动记事本程序,然后输入下列的代码,将其保存为“cfan .bat”并放置在桌面上(图4)。
代码解释:
第一行代码设置程序的实际路径。如果需要使用其他的程序,请自行更换“ApplicationPath=”后的路径即可。第二行代码则使用命令提示符的方式启动指定的程序,并为其设置“RUNASINVOKER”属性运行。
这样,以后當我们需要启动图1所示的游戏时,只要运行“cfan.bat”即可。程序成功运行后,再次打开任务管理器,切换到“详细信息”,可以看到“wegame.exe”进程,其“特权”下显示的是“否”,表示程序是使用标准权限运行。这样既可以很好地限制“we g ame.exe”对系统的更改,同时又可以保证UAC默认的拦截功能没有变化(图5)。
2.屏蔽UAC让“盾牌程序”自动提权运行
对于一些已经确定是安全的程序,我们则可以通过以管理员身份启动桌面进程(explorer.exe)来绕开UAC的拦截。不过,我们无法直接在“explorer.exe”上右击选择“以管理员身份运行”方式实现,需要先以管理员身份运行“PowerShell”,然后依次输入下列的命令(每输入一行命令后均需回车确认)(图6):
taskkill /f /im explorer.exe
c:\windows\explorer.exe /nouaccheck
代码解释:
先使用taskkill命令来强行结束当前系统的explorer.exe进程,接着再使用“/nouac check”参数启动explorer.exe进程。
上述的命令运行后会自动关闭桌面,接着又会自动重新加载桌面。由于重新加载的“explorer.exe”进程是在管理员身份运行的Powe r S h e l l中启动,因此该进程自动继承管理员权限,现在我们在桌面启动的“盾牌程序”都可以绕开UAC拦截。
比如在执行系统维护操作的时候,我们经常要频繁地运行一些“盾牌程序”,如regedit.exe、mmc.exe等,现在则只需在“运行”框中输入“regedit.exe”并回车,就可以直接启动注册表编辑器(常规桌面下则需要在弹出UAC拦截时点击“是”才可以运行)。启动注册表编辑器后参照图3所示的方法,在任务管理器可以看到“regedit.exe”进程的“特权”显示为“是”(图7)。
此外,在这个桌面状态下运行的其他程序默认也都是以管理员身份运行。比如在“运行”框中输入“c m d.e xe”并回车,运行后显示的窗口标题就是“管理员:命令提示符”,可以在其中输入“diskpar t”命令(该命令需要管理员权限才可以正常运行)进行测试(图8)。
注意:屏蔽了UA C 的拦截后,请勿在这种状态下运行一些危险程序。完成维护操作后,请去除“/nouaccheck”参数,再次运行图6所示的命令恢复到正常设置。