熱 點:
IE保護模式的文件虛擬重定向
然而奇怪的是,為什么紫光拼音只是在我這臺計算機上有點“水土不服”,而在別的計算機上卻能夠過得好好的?
這就要說到IE保護模式的另外一個優(yōu)勢了:
如果IE保護模式只有這點“防守”的能耐,那么它還不足于成為IE 7+最重要的安全特性。事實上,IE保護模式既具備嚴厲的安全措施(防守),同時又具備靈活的兼容性手段(進攻),可以說是攻守兼?zhèn)洹?/P>
原來Windows Vista為了能夠讓絕大多數(shù)加載項都能在IE瀏覽器上正常運行,IE保護模式采用一種虛擬重定向技術(shù)。
原來IE保護模式在以下目錄中,創(chuàng)建一個和[用戶配置文件夾]完全一致的目錄層次[擁有“Low”的完整性級別]:
%userprofile%AppDataLocalMicrosoftWindowsTemporary Internet FilesVirtualized
例如D:UsersAdmin,對于IE保護模式來說,還有一套完全一致的虛擬版本:
D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet FilesVirtualizedDUsersAdmin
這樣,如果IE加載項需要修改[用戶配置文件夾]下的文件,系統(tǒng)就會自動重定向到該文件的“虛擬”版本,對于該加載項來說,它根本不知道自己被IE保護模式欺騙了。
在其他正常的計算機上,當在IE保護模式下呼出紫光拼音輸入法時,利用Filemon工具進行檢測,會發(fā)現(xiàn)當紫光拼音想要修改D:UsersAdminAppDataRoamingUnispim下的usrwl.dat文件時,實際上是修改D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet FilesVirtualizedDUsersAdminAppDataRoamingUnispim目錄下的usrwl.dat文件,如下圖所示,所以紫光拼音可以正常工作。

提示
不少讀者朋友提到某些第三方的Web應用程序也有安全模式的功能。確實現(xiàn)在不少開發(fā)商都注意到安全的重要性,但是IE保護模式的安全效果,無疑更占上風。以電驢eMule為例,其安全模式是在系統(tǒng)里新增一個名為eMule_的普通用戶,然后借助runas的方法以該普通用戶身份運行eMule,以達到安全目的。這種方法的安全級別,和Windows Vista的UAC處于同一層次,比起IE保護模式,其安全性還是有所不如。更重要的是,UAC和IE保護模式,既安全、又方便、且兼容。
唯一遺憾的是,筆者的這臺計算機,不知道出于什么原因,無論是Beta 2、5456,還是最新的5472.5版本,紫光拼音輸入法無法正常觸發(fā)IE的虛擬重定向功能,所以導致拒絕訪問的錯誤。
巧妙的解決辦法
作為一名狂熱的Windows Vista愛好者,自然不能束手就擒,也不能把電腦砸了,所以咱還得好好想想解決辦法。以下兩個解決辦法:
1.假作真時真亦假
由于暫時沒有現(xiàn)成的工具可以修改目錄的完整性級別,同時Windows Vista不能替我效勞實現(xiàn)虛擬重定向,那就我們就自己動手創(chuàng)建!
假如我們把D:UsersAdminAppDataRoamingUnispim目錄設置為某個“Low”目錄的軟鏈接(Soft Link),那么每次紫光拼音試圖訪問D:UsersAdminAppDataRoamingUnispim目錄時,都會被NTFS文件系統(tǒng)自動重新定向到這個完整級別為“Low”的新目錄中,這樣就可以順利達到目的了。
由于我們知道D:UsersAdminAppDataLocalMicrosoftWindowsTemporary Internet FilesLow目錄具有“Low”完整性級別,所以先在其下新建一個Unispim子目錄,該子目錄會自動繼承“Low”完整性級別。
先刪除D:UsersAdminAppDataRoamingUnispim目錄下的所有內(nèi)容,然后可以借助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目錄下,否則可能干擾正常的虛擬重定向功能。