Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows Vista系統教程 >> Windows Vista教程 >> QQ 導致 Vista 死機原因的初步分析

QQ 導致 Vista 死機原因的初步分析

日期:2017/2/7 15:51:49      編輯:Windows Vista教程
    自從筆者用VISTA以來一直備受Tencent QQ(以下簡稱QQ)的折磨!此話怎講呢?在筆者的記憶中,從自己最早用的Windows Vista Beta1到Windows Vista Beta2,乃至Windows Vista 5472都不能順利的運行最新版QQ,即Tencent QQ 2006。對於一個學生來說的筆者,大多同學和朋友都只使用QQ來交流,可想而知QQ在自己網絡生活有多麼重要的地位。但是在自己最心愛的Windows Vista中卻不能用QQ與朋友共享Windows Vista帶給我的無限快樂與憂愁很是郁悶。雖然java平台的luma qq可以模擬QQ的部分功能,但始終不及Tencent QQ……

    終於在Windows Vista Pre-RC1 5536中得到了一些啟示,隨即初探出了QQ在Windows Vista死機的幾個原因,在此與大家共享。同時,也增加了自己對Windows Vista安全性的信心。

奇怪的死機經過
 
    自從筆者從前喜好用Administrator賬戶登陸Windows Vista受到了各種不安全的因素影響,導致系統崩潰數次,安裝數次,其中感慨頗多!當拿到最新測試版Windows Vista Pre-RC1 5536,筆者決定“聽從”Microsoft的安全建議:用普通用戶賬號登陸,開啟UAC……在這個最新版中,筆者感受到了更加人性化的UAC設計,因此也不再“懼怕”UAC帶來的麻煩,其實准確的說這已經不算麻煩了,因為現在對UAC的改進已經讓用戶感受不到它的存在,但安全性絲毫沒有減弱。

    廢話也說了一堆,下面來說說自己遇到的這個奇怪的問題:在vistafans論壇上聽很多壇友說Windows Vista Pre-RC1 5536中運行QQ,往往輸入到第四位密碼,系統就藍屏……正好最新版QQ 2006B3推出了,筆者也抱著試一試的態度安裝並運行了,但是神奇的事發生了,不僅沒有在輸入第四位密碼時死機,而且QQ運行狀態良好,沒有死機症狀!當時很是慶幸,不知道是不是自己人品好的原因才這樣。但是其中也出現了幾個問題:1.鍵盤加密無法啟動;2.無法在QQ目錄下找到以自己號碼命名的用戶信息的文件夾。自己憑直覺覺得是否應該用Administrator身份來運行QQ才能解決一下問題(因為自己此時已經習慣了普通用戶帳號使用,而且人性化的UAC設計也並沒有給自己帶來多少不便,從而不再用Administrator賬戶來登陸系統了)。於是就通過Windows Vista一個方便的程序運行權限管理選項進行了QQ(如圖)。  


   哈哈,方法果真奏效,鍵盤加密已經可以啟動了。懷著興奮的心情填好了號碼,輸好了密碼。但是“回車”以後沒有反應,定睛一看,怎麼密碼輸入到第四位就不能繼續輸入了,再試試看……不幸的事真的發生了,Windows Vista藍屏了,DUMP了後就重啟了……

鍵盤加密在作怪?!

    重啟以後,再次進行試驗,仍然是用Administrator權限來運行,結果依然藍屏,死機……第二次重啟後,決定不用Administrator權限來運行,恢復普通權限試試,這次終於又成功突破密碼的第四位封鎖,成功地登陸到了QQ。問題可真就奇怪了,在大家心目中,一般用 Administrator權限來運行程序可以達到“完美”的效果,但是這次可就怪了,用Administrator權限來運行程序反而會死機。此時筆者突然注意到鍵盤加密這個問題。如圖為鍵盤加密未啟動的提示。  


    既然懷疑是它就不能放過它!然後筆者到論壇上查看了一些死機的案例,還有一些網友總結的不死機的規律,從中可以發現:大多用戶還是習慣以 Administrator賬戶登陸計算機,從而可以啟動鍵盤加密導致藍屏;而且有些大膽的用戶也懷疑是鍵盤加密的問題,從而刪除了QQ目錄下兩個鍵盤加密程序的SYS文件(如下圖),因此沒有了死機現象!

    難道真是鍵盤加密在作怪?

QQ 導致 Vista 死機原因的初步分析

      假設的理論分析
    我們都知道,如果用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 FilesTencentQQ  X指Windows Vista系統盤)寫入數據。當然,不能正常地向常規文件夾(X:Program FilesTencentQQ  X指QQ所在盤符)寫入數據的問題,也可以從中得以解釋!

    虛擬重定向主要用於UAC兼容場景,當一個老的軟件在標准用戶環境運行時,如果需要訪問一個系統目錄並且被拒絕,UAC就會自動將其重定向到其他位置,而該應用程序以為自己能夠有權限訪問該目錄。這樣,上面筆者奇特的遭遇就不難解釋了:標准用戶下的QQ無法寫入其安裝目錄,所以其他的QQ號碼目錄會被重定向,以便QQ能夠正常運行在UAC環境。虛擬重定向的威力在此體現得淋漓盡致,因此Windows Vista的安全性得以進一步地提高。

巧妙的解決方法
    這裡介紹兩種常規的解決辦法:
第一種很簡單,以普通用戶帳號登陸,這時QQ得不到足夠的權限不能運行鍵盤加密程序從而不會導致系統崩潰

    第二種方法更加徹底,那就是直接刪除X:Program FilesTencentQQ(X指QQ所在盤符)下的npkcrypt.sys和npkcusb.sys這兩個文件。

    至今的疑問

    為什麼Windows Vista系統不能兼容QQ的鍵盤加密程序?
Copyright © Windows教程網 All Rights Reserved