在 Windows 8 尚处在预发布版的时候,各大软件厂商和在线服务提供商都在紧锣密鼓地开展开发和测试工作,为提供兼容 Windows 8 的程序做准备。在当时,我曾写过一则关于建行网银盾无法使用的问题和其解决方案。随着 Windows 8 的正式上市,Win8 与网站和软件的兼容性还是值得称赞的,这也得归功于各个软件提供商的配合与努力。对于日常使用的网银,很多都已经更新了需要用户安装的控件,用户在 Win8 上使用网银,便不会遇到阻碍性问题。
但在我最近买了一款 DELL Vostro 笔记本之后,发现了中行的网银安全控件还是存有一些问题。记得之前在 Win8 RC 版时,它的问题出在与64位系统不太兼容,导致键盘在密码输入框处,每按下一个字母,输入框就会卡死,很久以后才反映输入的那个字母。之后修复了这个假死的问题,在我的 HP EliteBook 上的64位 Win8 正式版上,测试一切正常。可是日前,经过我反复尝试,在 Dell Vostro 5460 上,每次只要安装了中银安全控件,所有键盘,不论是笔记本自带的键盘还是插入的 USB 键盘,都会失灵,即键盘不再起作用,任何键入都不会有效果。也许对于不知情的用户而言,他们甚至可能以为是键盘坏掉了,而且由于键盘失灵,他们也很难通过这台机器去寻求帮助。
搜索互联网,可以发现,这个问题不止我一个人遇见,很多人写的解决办法是删除 %SystemRoot%\system32\drivers\ETD.SYS 然后重启,但是我相信这绝非解决问题的办法。因为经查证,这个文件是 Dell 的触摸板驱动,其实这款触摸板是 ELAN Microelectronics 公司生产的。通过搜索发现,很多品牌的笔记本电脑,例如戴尔、华硕等,只要采用了这款触控版(在64位 Windows 8 上),用户在安装中行网银的时候,就会遇到这种键盘失灵的问题。(例如 Dell Vostro 5460, Dell Inspiron 15R,华硕 A45 等。)
那么可想而知,中行在让用户安装他的安全控件之时,一定是安装程序为系统添加了一款用于过滤用户输入的驱动程序,并且该驱动程序会干扰正常的用户输入设备驱动程序的运行。通过实验环境还原当时的步骤,收集数据并加以分析,我找到了这个中行安全控件释放出来的驱动文件——ProtectorA.sys (还有一个叫 Protect.sys 的,已无法找到,估计是临时生成的中间文件)
从这个文件的签名看,是中国银行的数字签名,只不过签署的时间是 2010年,老了点儿。再看描述,版权署在2008年,通过文件说明中的文字,是个键盘保护驱动程序,应该是与用户输入设备或者用户输入设备传入的内容相关的(过滤型)。
由此可见,中行控件的更新是换汤不换药,能兼容大多数电脑64位 Win8 的新版安全控件中,仍包含着很旧的"核心"。兴许这个控件的 release 前,也是没有经过严格的标准化测试的。想想我之前写过的建行的和中国移动充值控件的问题,也许这个中行的控件也是包给一家第三方公司写的,只不过使用了中国银行的证书进行代码签名。相信这一直都是电商和有网络服务的各大公司头痛的问题:自己可能没有专业的做程序开发的雇员,而外包后,由于自己不懂技术,无法对第三方公司的作品进行专业的验证和验收,因此质量难以控制。不过啊,对于这么大的银行而言,难道请不起专业的大软件公司做控件开发以确保质量么?或者自己成立个软件开发团队应该也不是问题吧。
最后,如果您也遇到了此问题,可以将以下内容用记事本保存成 .cmd 格式执行,用于删除 ProtectA.sys 这个导致问题的驱动:
del /f /q %systemroot%\system32\drivers\ProtectorA.sys
经测试,删除该中行驱动并重启计算机后,键盘失灵将得以解决,并且您仍旧可以登录中行的网上银行。只不过,有一定的可能性是中行的控件不再能"保护"您的键盘输入了(这取决于开发者让这个驱动是做什么的),所以请各位注意,如果这个控件的这个驱动程序导致了您的计算机发生问题,请知晓删除后的潜在风险,并且这完全属于您的个人行为和自愿决定。若您已删除,建议登录时请使用自己的电脑,并注意电脑的软件环境是否安全。也希望中国银行能早日解决这一问题。请遇到问题的各位也致电中行客服热线,选择网上银行专席,然后报告此问题。
本文转自 hbycscc 51CTO博客,原文链接:http://blog.51cto.com/mvperic/1158306