在前面的博客文章中,我们已经提到我们正在与微软一同解决黑屏死机问题。在寻找黑屏原因的过程中,我们已经有了一些重要进展。
该问题似乎与Windows注册表字符串数据存储的一个特性有关。在对Shell(命令解释程序)的注册表键值进行解析时,Windows需要一个“REG_SZ”空值终止字符串。然而,如果恶意软件或是其他程序修改了Shell入口,使之不包含空值终止字符串,Shell便无法正确载入,从而导致黑屏,而只显示“我的电脑”文件夹。
SysInternals在多年前便成为第一个发现这一注册表特性的企业之一,并推出了RegHide工具(http://technet.microsoft.com/en-us/sysinternals/bb897446.aspx),可以用来修正注册表入口,以确保无法从操作上海到吕梁物流系统内部访问这些入口。这一技术通常被恶意软件利用,正因如此,无论其内容是否包含空值终止符,该工具都推荐首先查询一个注册表键值的长度,然后将其读入缓冲区,再强制性加入空值终止字符串。
在缩小了本次黑屏死机事件的诱因范围后,我们已经对上海到忻州物流两个最新的Windows补丁程序进行了大量的反复测试,这一点我们已经在前面的博客文章中说过。由于黑屏原因被进一步缩小,所以便可将这些补丁从黑屏死机的可能诱因中排除。
至于这一过程中,操作系统解释(OS interpretation)或其他注册表键值是否发生改变,我们尚未进行进一步分析。无论如何,我们认为使用SysInternals文章中所推荐的键值长度将对操作系统有很大益处。
我们一直以来都强烈推荐Windows和其他软件用户更新最新的补丁,从而减少新漏洞所产生的威胁。如果我们有任何新的发现都会进一步发布最新信息。
我们为我们的博客有可能引发的不便向微软道歉。这个问题的确很难确定。遭遇黑屏问题的用户仍然可以安全使用我们所推荐的免费修复工具来恢复桌面图标和任务栏 |