Windows Vista用戶帳戶控制深度剖析文章作者 盆盆
由Winlogon啟動(dòng)的初始化進(jìn)程userinit鏈接到標(biāo)準(zhǔn)用戶訪問(wèn)令牌,所以由userninit進(jìn)程啟動(dòng)的Explorer進(jìn)程也鏈接到標(biāo)準(zhǔn)用戶訪問(wèn)令牌。同樣由Explorer啟動(dòng)的用戶進(jìn)程也會(huì)自動(dòng)鏈接到標(biāo)準(zhǔn)用戶訪問(wèn)令牌,由此大大減少受攻擊面,極大地提升系統(tǒng)安全性。如附圖所示。 如果某個(gè)進(jìn)程需要以更高權(quán)限運(yùn)行,則系統(tǒng)會(huì)彈出一個(gè)權(quán)限提升對(duì)話框,確認(rèn)后即可以更高權(quán)限運(yùn)行該進(jìn)程,該進(jìn)程鏈接到管理員訪問(wèn)令牌。 提示 要了解有關(guān)UAC進(jìn)程創(chuàng)建的流程,可以參考MVP Smallfrog的《Windows Vista UAC 模式下的進(jìn)程創(chuàng)建實(shí)戰(zhàn)的故事》。 五種標(biāo)識(shí)權(quán)限提升的方法 Windows Vista并沒(méi)有一種與生俱來(lái)的魔力,可以未卜先知某個(gè)應(yīng)用程序是否應(yīng)該運(yùn)行在更高安全級(jí)別上。應(yīng)用程序必須自己想辦法通知Windows Vista它需要更高權(quán)限。有以下五種方法,讓Windows Vista明白該應(yīng)用程序需要提升權(quán)限: (1) Windows Vista可以智能識(shí)別安裝程序,例如根據(jù)安裝程序的文件名(包含install或者setup),還可以智能識(shí)別msi發(fā)布的安裝包等等??梢宰鲆粋€(gè)實(shí)驗(yàn),如果修改其他某個(gè)應(yīng)用程序的名字,例如將QQ.exe重命名為QQInstall.exe,運(yùn)行它就會(huì)自動(dòng)觸發(fā)權(quán)限提升,原來(lái)UAC以為這是一個(gè)安裝程序。 (2) 在可執(zhí)行文件的屬性對(duì)話框、兼容性標(biāo)簽頁(yè)里勾選“以管理員身份啟動(dòng)該程序”復(fù)選框。這等效于在HKCU \Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers注冊(cè)表分支下添加鍵值,也相當(dāng)于修改C:\Windows\AppPatch下的sysmain.sdb兼容性數(shù)據(jù)庫(kù)。 (3) 在程序的manifest文件或者內(nèi)嵌的manifest信息里加入“level=highestAvaible”或者“level requireAdministrator”安全級(jí)別。 (4) 鼠標(biāo)右鍵單擊應(yīng)用程序,選擇“用管理員帳戶運(yùn)行”菜單項(xiàng)。 (5) 利用ACT(應(yīng)用程序兼容性工具)為特定應(yīng)用程序創(chuàng)建兼容性數(shù)據(jù)庫(kù),以便IT部門(mén)可以方便地在企業(yè)里部署兼容性設(shè)置。 提示 其中(2)和(3)可以參考筆者的《Windows Vista UAC安全功能深入剖析系列之二》。 毀譽(yù)參半的安全桌面 大概是從5365 Build起,當(dāng)系統(tǒng)彈出“用戶帳戶控制”提升權(quán)限對(duì)話框時(shí)(實(shí)際上是consent進(jìn)程),桌面背景會(huì)呈暗色顯示,這可能導(dǎo)致某些顯示器彈出“無(wú)信號(hào)”的錯(cuò)誤消息,正好可能擋住consent對(duì)話框,讓這些用戶感到非常不便。 1.原理簡(jiǎn)析 其實(shí)這個(gè)功能的本意是非常好的,可以增加UAC功能的安全度。原來(lái)這個(gè)暗色的背景實(shí)際上是安全桌面,也就是我們按“Ctrl+Alt+Del”組合鍵時(shí)所看到的藍(lán)色的特殊桌面(上面有類(lèi)似啟動(dòng)任務(wù)管理器等命令)。為什么看到的是暗色的當(dāng)前桌面呢?原來(lái)這是微軟為了保持用戶體驗(yàn)的一致性,特地對(duì)當(dāng)前桌面做了一個(gè)“快照”,將其作為安全桌面的“墻紙”。 由于consent對(duì)話框?qū)嶋H運(yùn)行在安全桌面上(安全桌面運(yùn)行在session 0上,而用戶進(jìn)程都運(yùn)行在session 1或者更高的session上),所以安全性非常好。除了少數(shù)系統(tǒng)進(jìn)程外,任何用戶進(jìn)程都無(wú)法和consent對(duì)話框進(jìn)行通信,所以惡意程序無(wú)法仿冒提升權(quán)限對(duì)話框以便誘使用戶點(diǎn)擊。 由于安全桌面的安全性非常好,所以連我們自己都無(wú)法直接監(jiān)控UAC背后發(fā)生了什么,同時(shí)甚至無(wú)法按PrintScreen鍵進(jìn)行截圖(剪貼板程序無(wú)法獲得鍵盤(pán)輸入)。 2.如何監(jiān)控UAC底層變化 用常規(guī)方法無(wú)法對(duì)UAC背后的變化進(jìn)行監(jiān)控,因?yàn)檫@時(shí)候提升權(quán)限對(duì)話框運(yùn)行在安全桌面上,用戶進(jìn)程無(wú)法與之進(jìn)行通信,所以我們必須另辟蹊徑。 聯(lián)想到Longhorn Server也具有UAC功能(默認(rèn)禁用),所以我們可以利用Longhorn Server搭建一個(gè)實(shí)驗(yàn)環(huán)境,用管理員帳戶登錄進(jìn)入Session 1,然后借助遠(yuǎn)程桌面,以另外一個(gè)管理員身份登錄到這臺(tái)實(shí)驗(yàn)機(jī),進(jìn)入Session 2。 我們?cè)?/span>Session 1里試圖運(yùn)行一個(gè)管理任務(wù),這時(shí)候系統(tǒng)會(huì)提示權(quán)限提升。由于安全桌面的原因,這時(shí)候無(wú)法在Session 1下用Process Explorer訪問(wèn)consent進(jìn)程的詳細(xì)信息。 這時(shí)候我們可以在遠(yuǎn)程桌面窗口(Session 2)下打開(kāi)Process Explorer,可以很方便地查看consent進(jìn)程的詳細(xì)信息,如附圖所示,我們可以發(fā)現(xiàn)consent進(jìn)程的父進(jìn)程是svchost(本例的PID是1008),查看這個(gè)PID 1008的svchost進(jìn)程,發(fā)現(xiàn)是“Application Information Service”服務(wù)的宿主進(jìn)程。所以可以推測(cè)是“Application Information Service”服務(wù)啟動(dòng)了consent進(jìn)程。同時(shí)還可以看到consent進(jìn)程本身運(yùn)行在Session 1,而不是Session 0。 3.禁用安全桌面 可以用以下方法禁用安全桌面: (1) 運(yùn)行secpol.msc,打開(kāi)“本地安全策略”管理單元窗口。 (2) 在左側(cè)的控制臺(tái)樹(shù)中依次展開(kāi)本地策略、安全選項(xiàng),在右側(cè)的詳細(xì)窗格里雙擊“用戶帳戶控制:提示提升時(shí)切換到安全桌面”策略項(xiàng)。 (3) 在打開(kāi)的對(duì)話框里選中“已禁用”選項(xiàng),如附圖所示。 讓UAC停薪留職 不少讀者朋友非常討厭UAC,有時(shí)候UAC就像是一位喋喋不休的MM,時(shí)不時(shí)地打斷我們的正常工作。為什么那么多朋友都無(wú)法容忍UAC?用戶對(duì)UAC功能的抱怨大概集中在以下兩個(gè)方面: (1) 我已經(jīng)是管理員了,為什么不直接允許我執(zhí)行管理任務(wù)?如果是第三方應(yīng)用軟件倒也罷了,為什么Windows自帶的工具軟件都要阻止我?為什么不能讓防火墻一樣設(shè)置規(guī)則,讓UAC下次不要再提醒? (2) 為什么轉(zhuǎn)移、刪除一個(gè)文件都要那么麻煩? 有不少朋友安裝好Windows Vista后,第一件事情就是禁用UAC!其實(shí)這是一種非常不值得的做法,至少有如下五大理由: (1) UAC功能是Windows Vista中最大的賣(mài)點(diǎn)之一,花費(fèi)不菲購(gòu)買(mǎi)了Windows Vista,卻把其中最值錢(qián)的功能特性給禁用了,這很有點(diǎn)“買(mǎi)櫝還珠”的意思。 (2) 如果禁用UAC,則會(huì)同時(shí)禁用IE保護(hù)模式等安全特性,這將大大降低系統(tǒng)的安全性。 (3) 在企業(yè)環(huán)境里,如果啟用UAC,可以減少約40%的桌面相關(guān)成本。 (4) 如果禁用了UAC,則當(dāng)以普通用戶登錄系統(tǒng)時(shí),無(wú)法享受UAC帶來(lái)的便利(無(wú)法方便地安裝程序和執(zhí)行管理任務(wù),也無(wú)法享受UAC為遺留應(yīng)用程序準(zhǔn)備的兼容性幫助)。 (5) 強(qiáng)烈推薦正在追MM的GGDD們啟用UAC,這可以幫助您提前訓(xùn)練對(duì)MM嘮叨的抵抗力。 其實(shí)從Build 5308、Beta 2,一直到當(dāng)前最新的5472,UAC功能的進(jìn)步是有目共睹的,現(xiàn)在UAC的惱人提示已經(jīng)減少了很多,也增加了很多人性化的改進(jìn),UAC功能已經(jīng)變得越來(lái)越平易近人,更多時(shí)候,UAC就像一位站在不遠(yuǎn)處用慈祥目光注視著我們的母親,而不再是一個(gè)在您耳邊不停斥責(zé)咆哮的上司。 如果您確實(shí)討厭UAC,推薦不要徹底禁用它,而是用以下兩種方法將其臨時(shí)禁用,需要時(shí)可以即時(shí)恢復(fù)。 1.臨時(shí)擺脫UAC的嘮叨—瘋狂的石頭 (1) 打開(kāi)任務(wù)管理器,切換到“進(jìn)程”標(biāo)簽頁(yè),然后結(jié)束“Explorer”進(jìn)程。 (2) 這時(shí)候再單擊“顯示所有用戶的進(jìn)程”按鈕,即可讓任務(wù)管理器運(yùn)行在管理員的級(jí)別上。 (3) 切換到“應(yīng)用程序”標(biāo)簽頁(yè),單擊“新任務(wù)”按鈕,啟動(dòng)“Explorer”進(jìn)程,現(xiàn)在新啟動(dòng)的“Explorer”進(jìn)程運(yùn)行在管理員級(jí)別下。 現(xiàn)在雖然在安全中心里顯示UAC啟用,如附圖所示。但是實(shí)際上由于Windows系統(tǒng)的Shell進(jìn)程Explorer此刻連接的訪問(wèn)令牌是管理員級(jí)別的,所以在Windows里啟動(dòng)的任何應(yīng)用程序都自動(dòng)繼承管理員級(jí)別的訪問(wèn)令牌,不受UAC的限制,包括執(zhí)行管理任務(wù)和文件操作。 這時(shí)候的UAC功能,光憑“肉眼”很難辨別真?zhèn)?,說(shuō)它是假的,安全中心里明明顯示啟用;說(shuō)它是真的,但是卻不會(huì)受到任何限制…… ——這不就是瘋狂的石頭嗎? 那么如何才能重新回到UAC狀態(tài)呢?聰明的您一定想到了,那就是用標(biāo)準(zhǔn)用戶權(quán)限重新啟動(dòng)Explorer進(jìn)程: (1) 首先在任務(wù)管理器里中止Explorer進(jìn)程[記?。哼@時(shí)候任務(wù)管理器具有管理員權(quán)限],然后關(guān)閉任務(wù)管理器。 (2) 按“Ctrl+Alt+Del”組合鍵呼出安全桌面,點(diǎn)擊其上的“啟動(dòng)任務(wù)管理器”,即可以標(biāo)準(zhǔn)用戶權(quán)限啟動(dòng)任務(wù)管理器,并新建Explorer進(jìn)程,好了,現(xiàn)在UAC又回來(lái)了! 提示 只有在萬(wàn)不得已的情況才使用這種方法,而且推薦僅在該環(huán)境里運(yùn)行管理任務(wù)或者進(jìn)行文件操作時(shí),才用這種方法,至于IE等進(jìn)程,最好在之前就啟動(dòng)。不過(guò)該方法總比徹底禁用UAC功能要好。 2.讓UAC閉嘴 如果既希望啟用UAC功能,又希望讓UAC閉嘴,那么可以通過(guò)以下方法修改本地安全策略: (1) 運(yùn)行secpol.msc,打開(kāi)“本地安全策略”管理單元窗口。 (2) 在左側(cè)的控制臺(tái)樹(shù)中依次展開(kāi)本地策略、安全選項(xiàng),在右側(cè)的詳細(xì)窗格里雙擊“用戶帳戶控制:管理審批模式中管理員的提示提升行為”策略項(xiàng)。 (3) 在打開(kāi)的對(duì)話框里選中“無(wú)提示”選項(xiàng),如附圖所示。 這時(shí)候UAC的功能還是保持啟用狀態(tài)(可以在安全中心里進(jìn)行驗(yàn)證),但是當(dāng)執(zhí)行管理任務(wù)時(shí),系統(tǒng)不再提示確認(rèn),而是直接運(yùn)行。當(dāng)進(jìn)行文件操作時(shí),如果遇到權(quán)限問(wèn)題,還是會(huì)發(fā)出提示,如附圖所示,但是單擊其上的“繼續(xù)”按鈕,并不會(huì)彈出“用戶帳戶控制”的確認(rèn)對(duì)話框,而是直接完成文件操作。 這種方法的安全性要強(qiáng)于禁用UAC,因?yàn)橹辽龠@時(shí)候IE保護(hù)模式等功能還是可以使用的。但是如果一個(gè)惡意軟件被標(biāo)記為需要提升權(quán)限,那么它同樣可以被直接執(zhí)行。所以為了保證安全性,可以再啟用一條比較嚴(yán)厲的策略“用戶帳戶控制:只提升簽名并認(rèn)證的可執(zhí)行文件。”這樣沒(méi)有合法數(shù)字簽名的應(yīng)用程序?qū)⒕芙^執(zhí)行。 提示 僅推薦忍耐力比較差的朋友們使用。 文件操作的噩夢(mèng)與福音 UAC最為人詬病的就是文件操作的不方便,網(wǎng)上曾流傳著這樣一個(gè)笑話:要徹底刪除一個(gè)文件,需要花費(fèi)七個(gè)步驟。 其實(shí)平心而論,這本不是UAC所造成的問(wèn)題,恰恰相反,如果理解UAC的本質(zhì)原理,還會(huì)發(fā)現(xiàn)UAC其實(shí)對(duì)文件操作是有幫助的。 何以見(jiàn)得? 原來(lái)在Windows安全體系中,用戶對(duì)文件能夠進(jìn)行什么操作,主要是看Explorer進(jìn)程的訪問(wèn)令牌和文件的訪問(wèn)控制列表。如果該文件的訪問(wèn)控制列表里規(guī)定只有管理員才能執(zhí)行刪除操作,那么處于UAC環(huán)境下的用戶當(dāng)然不能直接刪除該文件,這是因?yàn)檫@時(shí)候Explorer進(jìn)程的訪問(wèn)令牌中,管理員組的SID被過(guò)濾掉了。 這就好比,一個(gè)普通用戶無(wú)法在分區(qū)根目錄下新建文件,道理是一樣的。更何況UAC還給我們提供一個(gè)機(jī)會(huì)提升權(quán)限,以便可以進(jìn)行適當(dāng)?shù)奈募僮鳌?/span> 1.到底誰(shuí)幫助我們提升了權(quán)限? 這里面就帶來(lái)一個(gè)問(wèn)題(筆者最初也曾疑惑不解),既然文件操作主要是看Explorer進(jìn)程,但是提升權(quán)限后,并沒(méi)有發(fā)現(xiàn)Explorer進(jìn)程的訪問(wèn)令牌有什么變化,這是為什么?難道這個(gè)權(quán)限是從天上飛下來(lái)的? 經(jīng)過(guò)檢查發(fā)現(xiàn),當(dāng)權(quán)限提升以后,系統(tǒng)會(huì)啟動(dòng)一個(gè)Dllhost進(jìn)程,該進(jìn)程的訪問(wèn)令牌是管理員級(jí)別的,如附圖所示,由這個(gè)Dllhost進(jìn)程代替我們完成文件操作。 2.巧妙解決文件操作問(wèn)題 在5456、5472這些Build里,文件操作的UAC權(quán)限提升已經(jīng)得到很大程度上的改善,例如現(xiàn)在按Shift+Del組合鍵,提升權(quán)限后,就可以直接徹底刪除文件,而不會(huì)像以前版本那樣,還需要花N多步驟清空回收站。 如果您還是對(duì)現(xiàn)在的UAC文件操作不滿意,那么以下的解決方法可能堪稱(chēng)完美: (1) 首先打開(kāi)“文件夾選項(xiàng)”對(duì)話框,切換到“查看”標(biāo)簽頁(yè),確保選中“在單獨(dú)的進(jìn)程中打開(kāi)文件夾窗口”,如附圖所示。 Windows默認(rèn)只能啟動(dòng)一個(gè)Explorer進(jìn)程。而這個(gè)設(shè)置確??梢源蜷_(kāi)兩個(gè)獨(dú)立的Explorer進(jìn)程,以便我們給新的Explorer進(jìn)程鏈接管理員的訪問(wèn)令牌。 (2) 要想進(jìn)行文件操作,需要事先關(guān)閉桌面上已有的文件夾窗口,然后右鍵單擊“Windows資源管理器”菜單項(xiàng),選擇“用管理員帳戶運(yùn)行”,現(xiàn)在就可以打開(kāi)一個(gè)以管理員權(quán)限運(yùn)行的資源管理器窗口,在這里我們可以任意進(jìn)行文件操作,當(dāng)然前提條件是文件允許管理員組這樣做,不會(huì)再出現(xiàn)UAC權(quán)限提升的提示。 為了方便起見(jiàn),還可以為這個(gè)資源管理器添加一個(gè)開(kāi)始菜單項(xiàng): (1) 把Explorer.exe從%windir%中復(fù)制到“文檔”里,然后在屬性對(duì)話框、“兼容性”標(biāo)簽頁(yè)里勾選“以管理員身份啟動(dòng)該程序”復(fù)選框。 (2) 鼠標(biāo)右鍵單擊其Explorer.exe,選擇“附到[開(kāi)始]菜單”命令,即可在開(kāi)始菜單里添加菜單項(xiàng),可以將菜單項(xiàng)重命名為“管理員:Windows資源管理器”。 如果打開(kāi)Process Explorer,就可以發(fā)現(xiàn),現(xiàn)在系統(tǒng)里有了兩個(gè)Explorer進(jìn)程,其中一個(gè)進(jìn)程被標(biāo)識(shí)為“中強(qiáng)制級(jí)別”(Mandatory Integrity Level為中級(jí)),這個(gè)就是系統(tǒng)的Shell進(jìn)程。另一個(gè)進(jìn)程被標(biāo)識(shí)為“高強(qiáng)制級(jí)別”,這就是以管理員身份運(yùn)行的“Windows資源管理器”,如附圖所示。 這種方法既可以完美地解決文件操作的麻煩,又可以保留UAC功能。當(dāng)我們?cè)陂_(kāi)始菜單或者快速啟動(dòng)欄里啟動(dòng)IE時(shí),IE照樣受UAC和IE保護(hù)模式的控制,而不會(huì)運(yùn)行在管理員級(jí)別下。這是因?yàn)?,這時(shí)候IE的父進(jìn)程是“中強(qiáng)制級(jí)別”的那個(gè)Explorer進(jìn)程。 虛擬重定向 和IE保護(hù)模式一樣,UAC也利用兼容重定向?qū)崿F(xiàn)對(duì)遺留應(yīng)用程序的兼容性,不過(guò)兩者采用的是彼此獨(dú)立、互不干涉的兩套機(jī)制。其原理大致如下: 某個(gè)遺留應(yīng)用程序由于設(shè)計(jì)上的原因,需要在管理員權(quán)限,這些程序往往可能需要在一些“全局”的位置寫(xiě)文件或者注冊(cè)表位置,這些“全局”的位置包括C:\Windows、C:\Program Files,還有HKEY_LOCAL_MACHINE注冊(cè)表分支。 由于UAC的作用,這些遺留應(yīng)用程序運(yùn)行在標(biāo)準(zhǔn)用戶權(quán)限下,所以沒(méi)有權(quán)限往這些“全局”的位置寫(xiě)入內(nèi)容。這時(shí)候虛擬重定向功能就起作用了,它可以把這些“全局”位置重定向到per-user的路徑,這樣就可以欺騙遺留應(yīng)用程序,讓它可以順利運(yùn)行在標(biāo)準(zhǔn)用戶狀態(tài)。 1.實(shí)例介紹 本文簡(jiǎn)單介紹文件夾虛擬重定向的實(shí)現(xiàn)方法,以記事本為例,此處假設(shè)當(dāng)前登錄帳戶為Admin,Windows Vista安裝在D盤(pán)。 (1) 首先必須選擇Windows 2000/XP下的記事本,而不是Windows Vista內(nèi)置的記事本工具。 (2) 打開(kāi)Windows XP版本的記事本程序, 先確認(rèn)一下記事本進(jìn)程的訪問(wèn)令牌,確實(shí)是工作在標(biāo)準(zhǔn)用戶權(quán)限下,如附圖所示,也就是說(shuō)按照道理,記事本不可能對(duì)D:\Windows目錄有寫(xiě)入權(quán)限。 (3) 輸入一段內(nèi)容,然后單擊文件、保存,把保存路徑設(shè)置為D:\Windows,文件名為TestUAC.txt。非常奇怪,保存操作居然沒(méi)有報(bào)錯(cuò)“拒絕訪問(wèn)”。 (4) 打開(kāi)“我的電腦”,進(jìn)入D:\Windows文件夾,里面并沒(méi)有發(fā)現(xiàn)TestUAC.txt文件,不過(guò)我們?cè)诠ぞ邫诘淖钣覀?cè)看到了一個(gè)“兼容性”按鈕。 (5) 單擊“兼容性”按鈕,即可進(jìn)入“D:\Users\Admin\AppData\Local\VirtualStore\Windows”目錄,可以發(fā)現(xiàn)這個(gè)目錄下有一個(gè)TestUAC.txt文件,如附圖所示。 在這個(gè)過(guò)程中,如果用File Monitor進(jìn)行監(jiān)控,就會(huì)發(fā)現(xiàn),當(dāng)記事本嘗試往D:\Windows目錄寫(xiě)入文件時(shí),UAC應(yīng)該會(huì)捕獲拒絕訪問(wèn)的權(quán)限錯(cuò)誤,然后自動(dòng)啟用重定向機(jī)制,把這個(gè)文本文件重定向(保存)到D:\Users\Admin\AppData\Local\VirtualStore\Windows目錄中,如附圖所示。 也就是說(shuō),UAC會(huì)自動(dòng)把“全局”文件夾位置重定向到“%LocalAppData%\VirtualStore\”目錄,這是一個(gè)per-user的目錄,很顯然不同的用戶,重定向的目錄也有所不同。用戶A無(wú)法看到用戶B的重定向文件。這種隔離對(duì)大多數(shù)應(yīng)用程序來(lái)說(shuō)沒(méi)有什么問(wèn)題,但是對(duì)某些應(yīng)用程序來(lái)說(shuō)可能存在一些問(wèn)題,例如某些游戲軟件可能要求把游戲得分記錄保存在一個(gè)公共的位置,以便比較各個(gè)玩家的成績(jī),但是UAC可能會(huì)讓每個(gè)玩家認(rèn)為只有自己才是最棒的。 據(jù)微軟的調(diào)查結(jié)果,UAC的這種兼容性大概能夠使得約92%的遺留應(yīng)用程序可以正常工作在Windows Vista環(huán)境下。 2.原理簡(jiǎn)析 從File Monitor截圖中我們還能看到一個(gè)熟悉的單詞“REPARSE”(重解析),難道它和NTFS文件系統(tǒng)的重解析屬性有什么相關(guān)嗎?其實(shí)UAC的兼容重定向是借助一個(gè)文件系統(tǒng)的篩選驅(qū)動(dòng)程序(Filter Driver)來(lái)實(shí)現(xiàn)的,這個(gè)驅(qū)動(dòng)的名字是luafv.sys,作為SYSTEM進(jìn)程的線程在內(nèi)核模式中加載,如附圖所示。 3.配置虛擬重定向 有讀者朋友肯定早就想問(wèn),為什么這個(gè)實(shí)驗(yàn)必須借助Windows XP下的記事本?為什么不能用Windows Vista自帶的記事本工具?原來(lái)Windows Vista自帶的記事本工具實(shí)際上專(zhuān)門(mén)為UAC設(shè)計(jì)的,不能算是遺留應(yīng)用程序,所以Windows Vista不會(huì)為它開(kāi)啟虛擬重定向功能,如果嘗試向“全局”位置寫(xiě)入文件,會(huì)直接受到拒絕訪問(wèn)的錯(cuò)誤消息。 那么標(biāo)準(zhǔn)到底是什么?Windows Vista憑什么不給自帶的記事本開(kāi)啟虛擬重定向兼容特性? 原來(lái)秘密就在于程序的manifest信息,Windows Vista自帶的記事本程序里嵌入了manifest信息,指定了其安全級(jí)別為“asInvoker”,Windows Vista將這類(lèi)定義了安全級(jí)別manifest信息的應(yīng)用程序,一律視作合格的應(yīng)用程序,不再對(duì)此應(yīng)用虛擬重定向。 用Process Explorer可以查出,Windows Vista自帶的記事本的虛擬重定向標(biāo)記為“No”,而Windows XP記事本的虛擬重定向標(biāo)記為“Yes”。再例如QQ原本是可以啟用虛擬重定向的,但是在manifest文件(QQ.exe.manifest)里添加以下安全級(jí)別信息,如附圖所示: 可以在本地安全策略里指定Windows Vista是否啟用虛擬重定向功能,方法是禁用“用戶帳戶控制:將文件和注冊(cè)表寫(xiě)入錯(cuò)誤指定到每個(gè)用戶位置”策略項(xiàng)。 |
|
來(lái)自: 小飛蝦 > 《vista專(zhuān)題》