終于在Windows Vista Pre-RC1 5536中得到了一些啟示,隨即初探出了QQ在Windows Vista死機(jī)的幾個原因,在此與大家共享。同時,也增加了自己對Windows Vista安全性的信心。
奇怪的死機(jī)經(jīng)過
自從筆者從前喜好用Administrator賬戶登陸Windows Vista受到了各種不安全的因素影響,導(dǎo)致系統(tǒng)崩潰數(shù)次,安裝數(shù)次,其中感慨頗多!當(dāng)拿到最新測試版Windows Vista Pre-RC1 5536,筆者決定“聽從”Microsoft的安全建議:用普通用戶賬號登陸,開啟UAC……在這個最新版中,筆者感受到了更加人性化的UAC設(shè)計,因此也不再“懼怕”UAC帶來的麻煩,其實準(zhǔn)確的說這已經(jīng)不算麻煩了,因為現(xiàn)在對UAC的改進(jìn)已經(jīng)讓用戶感受不到它的存在,但安全性絲毫沒有減弱。
廢話也說了一堆,下面來說說自己遇到的這個奇怪的問題:在vistafans論壇上聽很多壇友說Windows Vista Pre-RC1 5536中運行QQ,往往輸入到第四位密碼,系統(tǒng)就藍(lán)屏……正好最新版QQ 2006B3推出了,筆者也抱著試一試的態(tài)度安裝并運行了,但是神奇的事發(fā)生了,不僅沒有在輸入第四位密碼時死機(jī),而且QQ運行狀態(tài)良好,沒有死機(jī)癥狀!當(dāng)時很是慶幸,不知道是不是自己人品好的原因才這樣。但是其中也出現(xiàn)了幾個問題:1.鍵盤加密無法啟動;2.無法在QQ目錄下找到以自己號碼命名的用戶信息的文件夾。自己憑直覺覺得是否應(yīng)該用Administrator身份來運行QQ才能解決一下問題(因為自己此時已經(jīng)習(xí)慣了普通用戶帳號使用,而且人性化的UAC設(shè)計也并沒有給自己帶來多少不便,從而不再用Administrator賬戶來登陸系統(tǒng)了)。于是就通過Windows Vista一個方便的程序運行權(quán)限管理選項進(jìn)行了QQ(如圖)
哈哈,方法果真奏效,鍵盤加密已經(jīng)可以啟動了。懷著興奮的心情填好了號碼,輸好了密碼。但是“回車”以后沒有反應(yīng),定睛一看,怎么密碼輸入到第四位就不能繼續(xù)輸入了,再試試看……不幸的事真的發(fā)生了,Windows Vista藍(lán)屏了,DUMP了后就重啟了……
鍵盤加密在作怪
重啟以后,再次進(jìn)行試驗,仍然是用Administrator權(quán)限來運行,結(jié)果依然藍(lán)屏,死機(jī)……第二次重啟后,決定不用Administrator權(quán)限來運行,恢復(fù)普通權(quán)限試試,這次終于又成功突破密碼的第四位封鎖,成功地登陸到了QQ。問題可真就奇怪了,在大家心目中,一般用Administrator權(quán)限來運行程序可以達(dá)到“完美”的效果,但是這次可就怪了,用Administrator權(quán)限來運行程序反而會死機(jī)。此時筆者突然注意到鍵盤加密這個問題。如圖為鍵盤加密未啟動的提示既然懷疑是它就不能放過它!然后筆者到論壇上查看了一些死機(jī)的案例,還有一些網(wǎng)友總結(jié)的不死機(jī)的規(guī)律,從中可以發(fā)現(xiàn):大多用戶還是習(xí)慣以Administrator賬戶登陸計算機(jī),從而可以啟動鍵盤加密導(dǎo)致藍(lán)屏;而且有些大膽的用戶也懷疑是鍵盤加密的問題,從而刪除了QQ目錄下兩個鍵盤加密程序的SYS文件(如下圖),因此沒有了死機(jī)現(xiàn)象!
難道真是鍵盤加密在作怪?
假設(shè)的理論分析
我們都知道,如果用Administrator賬戶登陸可以獲得計算機(jī)的最高權(quán)限(此賬戶默認(rèn)關(guān)閉UAC),因此安全性也相當(dāng)?shù)母撸訫icrosoft才不建議啟用該賬戶。假設(shè)我們現(xiàn)在以Administrator賬戶登陸,運行QQ程序,此時QQ程序可以獲得最高的運行權(quán)限來執(zhí)行其所需要的其他服務(wù)或程序,當(dāng)然鍵盤加密就是這樣一個它所需要的程序,所以這是鍵盤加密可以順利的啟動。反觀普通賬戶,當(dāng)我們運行QQ時,Windows Vista只允許其自身允許,而沒有其他權(quán)限來執(zhí)行其他所需要的程序,因此鍵盤加密就被關(guān)在了權(quán)限大門以外,從而無法正常允許,從而出現(xiàn)了錯誤提示。當(dāng)然如果我們此時選中了QQ的“Run as Administrator”這個選項,QQ這個進(jìn)程就具備了最高權(quán)限,從而可以運行鍵盤加密。值得注意的是,Windows Vista為了防止“Run as Administrator”這個選項的惡意選中而致使一個不安全的程序獲得最高權(quán)限,當(dāng)我們以Administrator權(quán)限允許它是UAC就會啟動,提示我們是否允許這個未知的可能帶來安全隱患的程序獲得最高權(quán)限允許,這就是UAC人性化和安全性的完美體現(xiàn)。
從上面的分析我們不難也可以找到第2個問題(無法在QQ目錄下找到以自己號碼命名的用戶信息的文件夾)的答案。因為此時我們使用普通用戶賬戶運行,只允許其向指定位置(QQ用戶信息文件夾的指定位置被設(shè)在 X:Users[用戶名]AppDataLocalVirtualStoreProgram FilesTencentQQ X指Windows Vista系統(tǒng)盤)寫入數(shù)據(jù)。當(dāng)然,不能正常地向常規(guī)文件夾(X:Program FilesTencentQQ X指QQ所在盤符)寫入數(shù)據(jù)的問題,也可以從中得以解釋!
虛擬重定向的“威力”
虛擬重定向主要用于UAC兼容場景,當(dāng)一個老的軟件在標(biāo)準(zhǔn)用戶環(huán)境運行時,如果需要訪問一個系統(tǒng)目錄并且被拒絕,UAC就會自動將其重定向到其他位置,而該應(yīng)用程序以為自己能夠有權(quán)限訪問該目錄。這樣,上面筆者奇特的遭遇就不難解釋了:標(biāo)準(zhǔn)用戶下的QQ無法寫入其安裝目錄,所以其他的QQ號碼目錄會被重定向,以便QQ能夠正常運行在UAC環(huán)境。虛擬重定向的威力在此體現(xiàn)得淋漓盡致,因此Windows Vista的安全性得以進(jìn)一步地提高。
巧妙的解決方法
這里介紹兩種常規(guī)的解決辦法:
第一種很簡單,以普通用戶帳號登陸,這時QQ得不到足夠的權(quán)限不能運行鍵盤加密程序從而不會導(dǎo)致系統(tǒng)崩潰
第二種方法更加徹底,那就是直接刪除X:Program FilesTencentQQ(X指QQ所在盤符)下的npkcrypt.sys和npkcusb.sys這兩個文件。