热 点:
IE保护模式的文件虚拟重定向
然而奇怪的是,为什么紫光拼音只是在我这台计算机上有点“水土不服”,而在别的计算机上却能够过得好好的?
这就要说到IE保护模式的另外一个优势了:
如果IE保护模式只有这点“防守”的能耐,那么它还不足于成为IE 7+最重要的安全特性。事实上,IE保护模式既具备严厉的安全措施(防守),同时又具备灵活的兼容性手段(进攻),可以说是攻守兼备。
原来Windows Vista为了能够让绝大多数加载项都能在IE浏览器上正常运行,IE保护模式采用一种虚拟重定向技术。
原来IE保护模式在以下目录中,创建一个和[用户配置文件夹]完全一致的目录层次[拥有“Low”的完整性级别]:
%userprofile%AppDataLocalMicrosoftWindowsTemporary Internet FilesVirtualized
例如D:UsersAdmin,对于IE保护模式来说,还有一套完全一致的虚拟版本:
D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet FilesVirtualizedDUsersAdmin
这样,如果IE加载项需要修改[用户配置文件夹]下的文件,系统就会自动重定向到该文件的“虚拟”版本,对于该加载项来说,它根本不知道自己被IE保护模式欺骗了。
在其他正常的计算机上,当在IE保护模式下呼出紫光拼音输入法时,利用Filemon工具进行检测,会发现当紫光拼音想要修改D:UsersAdminAppDataRoamingUnispim下的usrwl.dat文件时,实际上是修改D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet FilesVirtualizedDUsersAdminAppDataRoamingUnispim目录下的usrwl.dat文件,如下图所示,所以紫光拼音可以正常工作。
提示
不少读者朋友提到某些第三方的Web应用程序也有安全模式的功能。确实现在不少开发商都注意到安全的重要性,但是IE保护模式的安全效果,无疑更占上风。以电驴eMule为例,其安全模式是在系统里新增一个名为eMule_的普通用户,然后借助runas的方法以该普通用户身份运行eMule,以达到安全目的。这种方法的安全级别,和Windows Vista的UAC处于同一层次,比起IE保护模式,其安全性还是有所不如。更重要的是,UAC和IE保护模式,既安全、又方便、且兼容。
唯一遗憾的是,笔者的这台计算机,不知道出于什么原因,无论是Beta 2、5456,还是最新的5472.5版本,紫光拼音输入法无法正常触发IE的虚拟重定向功能,所以导致拒绝访问的错误。
巧妙的解决办法
作为一名狂热的Windows Vista爱好者,自然不能束手就擒,也不能把电脑砸了,所以咱还得好好想想解决办法。以下两个解决办法:
1.假作真时真亦假
由于暂时没有现成的工具可以修改目录的完整性级别,同时Windows Vista不能替我效劳实现虚拟重定向,那就我们就自己动手创建!
假如我们把D:UsersAdminAppDataRoamingUnispim目录设置为某个“Low”目录的软链接(Soft Link),那么每次紫光拼音试图访问D:UsersAdminAppDataRoamingUnispim目录时,都会被NTFS文件系统自动重新定向到这个完整级别为“Low”的新目录中,这样就可以顺利达到目的了。
由于我们知道D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet FilesLow目录具有“Low”完整性级别,所以先在其下新建一个Unispim子目录,该子目录会自动继承“Low”完整性级别。
先删除D:UsersAdminAppDataRoamingUnispim目录下的所有内容,然后可以借助Linkd命令行工具,把D:UsersAdminAppDataRoamingUnispim目录“映射”到D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet FilesLowUnispim目录,如下图所示。运行完命令后,记住必须重启或者注销后重新登录一下。
/pic/31/a2006-7-31-734363.gif
从《Windows Internals》里我们可以了解到,这种“映射”机制,实际上是给NTFS文件增加一个重解析点的属性。用Filemon工具可以检测到,当紫光拼音访问D:UsersAdminAppDataRoamingUnispim目录下的某个文件时,会被自动“REPARSE”(重解析)到D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet FilesLowUnispim目录下,如下图所示。
这种方法虽然是个特例,但是大家也可以借鉴用于其他IE加载项不能正常工作的情况。
提示
不推荐映射到D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet Filesvirtualized目录下,否则可能干扰正常的虚拟重定向功能。