哈哈,方法果真奏效,键盘加密已经可以启动了。怀着兴奋的心情填好了号码,输好了密码。但是“回车”以后没有反应,定睛一看,怎么密码输入到第四位就不能继续输入了,再试试看……不幸的事真的发生了,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所在盘符)下的npkcrypt.sys和npkcusb.sys这两个文件。
至今的疑问
为什么Windows Vista系统不能兼容QQ的键盘加密程序?