作者從 Vista Beta 1 到 Pre-RC1 5536 持續遭遇騰訊 QQ 2006 登入時藍屏問題,經系統性測試發現核心成因在於「鍵盤加密元件」與 Vista UAC 權限模型的衝突。本文詳細記錄複現過程、理論分析與兩種可行規避方案。
QQ 登入過程會載入鍵盤加密驅動防止鍵盤側錄。此驅動需核心模式最高權限。當用戶以「系統管理員身分執行」QQ 時,進程獲得高權限,驅動順利載入 → 觸發核心錯誤 → 藍屏。普通權限下驅動被 UAC 阻擋無法載入 → 登入流程繞過該模組 → 不死機。
普通權限執行 QQ 時,程式嘗試寫入安裝目錄 Program Files\Tencent\QQ\ 失敗,UAC 檔案虛擬化將寫入重導向至 Users\<用戶名>\AppData\Local\VirtualStore\Program Files\Tencent\QQ\。此為 Vista 安全機制正常運作,但導致用戶找不到習慣位置的聊天記錄、設定檔。
啟用內建 Administrator 帳號登入預設關閉 UAC,QQ 進程具備完整高權限,鍵盤加密驅動順利載入 → 必然藍屏。這解釋為何早期測試者多回報「輸入第 4 位密碼死機」——多數人習慣用 Administrator 帳號測試測試版系統。
C:\Program Files\Tencent\QQ\)npkcrypt.sys 與 npkcusb.sys 兩個檔案核心疑問:為何 Vista 核心無法相容 QQ 的鍵盤加密驅動?是驅動編寫不符合 Vista 核心模式簽名/穩定性規範,還是 Vista 對舊式鍵盤過濾驅動的支援存在缺陷?期待騰訊釋出原生 Vista 版 QQ 或微軟在 RC1/RTM 中改善相容性。
VirtualStore 下的 QQ 資料,防遺失