哈哈,方法果真奏效,鍵盤加密已經可以啟動了。懷着興奮的心情填好了號碼,輸好了密碼。但是“回車”以後沒有反應,定睛一看,怎麼密碼輸入到第四位就不能繼續輸入了,再試試看……不幸的事真的發生了,Windows Vista藍屏了,DUMP了後就重啟了……
鍵盤加密在作怪?!
重啟以後,再次進行試驗,仍然是用Administrator權限來運行,結果依然藍屏,死機……第二次重啟後,決定不用Administrator權限來運行,恢復普通權限試試,這次終於又成功突破密碼的第四位封鎖,成功地登陸到了QQ。問題可真就奇怪了,在大家心目中,一般用Administrator權限來運行程序可以達到“完美”的效果,但是這次可就怪了,用Administrator權限來運行程序反而會死機。此時筆者突然注意到鍵盤加密這個問題。如圖為鍵盤加密未啟動的提示
既然懷疑是它就不能放過它!然後筆者到論壇上查看了一些死機的案例,還有一些網友總結的不死機的規律,從中可以發現:大多用户還是習慣以Administrator賬户登陸計算機,從而可以啟動鍵盤加密導致藍屏;而且有些大膽的用户也懷疑是鍵盤加密的問題,從而刪除了QQ目錄下兩個鍵盤加密程序的SYS文件(如下圖),因此沒有了死機現象!
難道真是鍵盤加密在作怪?
假設的理論分析
我們都知道,如果用Administrator賬户登陸可以獲得計算機的最高權限(此賬户默認關閉UAC),因此安全性也相當的高,所以Microsoft才不建議啟用該賬户。假設我們現在以Administrator賬户登陸,運行QQ程序,此時QQ程序可以獲得最高的運行權限來執行其所需要的其他服務或程序,當然鍵盤加密就是這樣一個它所需要的程序,所以這是鍵盤加密可以順利的啟動。反觀普通賬户,當我們運行QQ時,Windows Vista只允許其自身允許,而沒有其他權限來執行其他所需要的程序,因此鍵盤加密就被關在了權限大門以外,從而無法正常允許,從而出現了錯誤提示。當然如果我們此時選中了QQ的“Run as Administrator”這個選項,QQ這個進程就具備了最高權限,從而可以運行鍵盤加密。值得注意的是,Windows Vista為了防止“Run as Administrator”這個選項的惡意選中而致使一個不安全的程序獲得最高權限,當我們以Administrator權限允許它是UAC就會啟動,提示我們是否允許這個未知的可能帶來安全隱患的程序獲得最高權限允許,這就是UAC人性化和安全性的完美體現。
從上面的分析我們不難也可以找到第2個問題(無法在QQ目錄下找到以自己號碼命名的用户信息的文件夾)的答案。因為此時我們使用普通用户賬户運行,只允許其向指定位置(QQ用户信息文件夾的指定位置被設在 X:Users[用户名]AppDataLocalVirtualStoreProgram FilesTencentQQX指Windows Vista系統盤)寫入數據。當然,不能正常地向常規文件夾(X:Program FilesTencentQQX指QQ所在盤符)寫入數據的問題,也可以從中得以解釋!
虛擬重定向的“威力”
虛擬重定向主要用於UAC兼容場景,當一個老的軟件在標準用户環境運行時,如果需要訪問一個系統目錄並且被拒絕,UAC就會自動將其重定向到其他位置,而該應用程序以為自己能夠有權限訪問該目錄。這樣,上面筆者奇特的遭遇就不難解釋了:標準用户下的QQ無法寫入其安裝目錄,所以其他的QQ號碼目錄會被重定向,以便QQ能夠正常運行在UAC環境。虛擬重定向的威力在此體現得淋漓盡致,因此Windows Vista的安全性得以進一步地提高。
巧妙的解決方法
這裏介紹兩種常規的解決辦法:
第一種很簡單,以普通用户帳號登陸,這時QQ得不到足夠的權限不能運行鍵盤加密程序從而不會導致系統崩潰
第二種方法更加徹底,那就是直接刪除X:Program FilesTencentQQ(X指QQ所在盤符)下的和這兩個文件。
至今的疑問
為什麼Windows Vista系統不能兼容QQ的鍵盤加密程序?