引自http://blog.csdn.net/wangweixing2000/archive/2007/06/01/1634276.aspx
个人感觉有一句最有用:低完整性等级的进程不能获得写高完整性对象的权限,即使该用户的SID是被写在DACL(无条件处理控制列表)中
///
vista为了防止在使用ie7时一些恶意程序对用户数据的破坏,从而在vista中加了一层安全防护
这里就叫安全保护模式,该保护模式在默认是打开的,所以我们需要更改我们的程序去兼容它。
理解vista的完整性机构
vista中加上了一套访问控制安全机构(标签进程和一些有完整性等级的安全对象)。
“保护模式”建立于新的完整性机制之上,以将写访问限制在可保安全的对象(如,具有更高完整性级别的进程、文件和注册表项)。当以“保护模式”运行时,Internet Explorer 是一个低完整性进程;因此它无法获得对用户配置文件或者系统位置中文件和注册表项的写入访问权限。
完整性低的进程只能对那些已分配了低完整性强制标签的文件夹、文件和注册表项执行写入操作。结果,Internet Explorer 及其扩展在“保护模式”中运行,从而只能对低完整性位置(如新的低完整性“临时 Internet 文件”文件夹、“历史记录”文件夹、Cookies 文件夹、“收藏夹”文件夹以及“Windows 临时文件”文件夹)进行写入操作。
而且,在 Windows Vista 交付时,“保护模式”进程将以低桌面完整性级别运行,这样可防止其将特定的窗口消息发送给完整性更高的进程。
在vista下完整性等级机构的主要功能包括下面几部分:
1、安全对象,象文件和注册表的键值,定义完整性等级且有安全描述符对象,需要特权去
写这些对象。
2、被定义在安全访问令牌有完整性等级的进程。在保护模式下,ie7有底完整性等级,
从开始菜单运行的应用程序有中完整性等级。应用程序需要有管理员权限才能运行在高完整
性等级下。
3、低完整性等级的进程不能获得写高完整性对象的权限,即使该用户的SID是被写在DACL(无条件处理控制列表)中。
所有的文件和注册表项在缺省情况下的完整性等级都是中级。一个低等级的进程,像在保护模式下ie,当他更改已经存在
的文件的时候,它将接收到一个拒绝访问错误信息。
一些文件夹有低等级的标记。像在保护模式下的ie7或进程,它就能创建和更改在低等级文件夹下的文件。
说明:
在低级别进程创建的子进程默认也是低级别的,不过也可创建高级别的,详细请看msdn。
下面列出了支持的完整访问级别和他们的所赋予的权限
级别 权限
High(高) 管理员权限(安装程序到Program Files目录下和写HKEY_LOCAL_MACHINE)
Medium(中) 用户权限(可以创建和更改用户的Documents目录下的文件和写用户相关的键值,例如HKEY_CURRENT_USER)
Low(低) 不可信的权限(只能写Low级别区域,例如Temporary Internet Files目录或者HKEY_CURRENT_USER/Software/LowRegistry键值)
“保护模式”提供了可减少对现有扩展影响力的兼容性体系结构,如下图所示。
.
图 1
兼容性层处理许多现有扩展的需要。它截取了对中等完整性资源(如用户配置文件中的“我的文档”文件夹和 HKEY_CURRENT_USER 注册表配置单元)的写入尝试。兼容性层使用普通的 Windows 兼容性修复程序将这些操作自动重新定向到下列低完整性位置:
%userprofile%/LocalSettings/Temporary Internet Files/Virtualized
HKEY_CURRENT_USER/Software/Microsoft/InternetExplorer/InternetRegistry
两个更高权限的代理程序进程允许 Internet Explorer 和扩展执行经用户许可的提升操作。例如,用户权限代理程序 (IEUser.exe) 进程提供一组允许用户将文件保存到低完整性区域之外区域的功能。另外,管理员权限代理程序 (IEInstal.exe) 进程支持 Internet Explorer 安装 ActiveX 控件。
在ie进程中启动一个新进程时会有一个对话框弹出提示是否允许运行该程序,如果你选择的不再对此
程序显示此警告->点击允许的话,ie会在注册表HKCU中添加一项ElevationPolicy,以后就不会再有提示了.
如果你提前把你的相关信息加入到ElevationPolicy下,那么它将不会影响我们干任何事情.hoho!
写了一些提升权限的工具,想怎么样就怎么样,MS你永远没法限制.......................................!
low的一些路径,如:
系统盘:/Users/用户名/AppData/LocalLow/