Windows Vista的UAC功能浅析(5)
应该不会:
从Build 5308开始,Windows Vista会自动检查程序代码中的数字签名,并且在consent对话框里提供相应的警告信息。如果试图运行一个没有合法签名的程序,Windows Vista会警告说该程序没有合法的“身份证”,若要运行,后果自负。这和图5所示的情况有所区别。
图6
要了解更多的有关manifest的信息,可以参考以下的微软官方文档:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/AccProtWindows Vista.asp
实验查验Mandatory Label SID的作用
当系统尝试启动标记为高特权的进程时,Windows Vista并非不分青红皂白,一味地弹出consent对话框要求确认。
其实这个问题在笔者的拙作《Windows Vista的UAC功能浅析(一)》中曾经提到过Windows Vista新引入了几个“古怪的SID(在本文,这些SID统称为Mandatory Label SID):
? Medium Mandatory Level:其SID为S-1-16-8192。
? High Mandatory Level:其SID为S-1-16-12288
? System Mandatory Level:其SID为S-1-16-16384
? Low Mandatory Level:该标志主要用于保护模式的IE浏览器等进程
这三个“古怪”帐户SID,实际上就是专门用来标记访问令牌的,这些帐户既不能用于登录,也不能用于安全权限分配。
笔者在Windows Vista CTP 5308虚拟机上,分别做以下三个实验:
(1) 直接运行regedit,会弹出consent对话框确认提升权限,这时候的父进程为explorer.exe,其Mandatory Label SID为“Medium Mandatory Level”。
(2) 以“Run as administrator”方式打开一个CMD Shell,这时候CMD进程的Mandatory Label SID为“High Mandatory Level”,在其下可以打开regedit,而无需确认。
(3) 按下ctrl+alt+del组合键,在Winlogon Desktop上单击“Start Task Manager”按钮,即可弹出如下图所示的窗口,实际上就是一个taskmgr.exe进程,其Mandatory Label SID为“Medium Mandatory Level”,这里在Process Explorer里记下其PID(假设为2272):
图7
网友评论