更新: 感谢橡皮鸭效果,我刚刚偶然发现这张纸条。 这是已知问题:如果你有 Windows XP,并且手动或通过某种“黑客”设法下载了 2015 年 2 月 9 日的 Windows 更新,那么 Arial 和 Courier 就会被搞砸。
Windows Vista 用户:同样适用,但由于 Vista 仍受支持,因此会发生这种情况自动地和总是(除非你卸载 KB3013455 更新,和在其自动重新安装之前从 Windows 更新中禁用它)。
原始问题
我有一台安装了 XP Pro SP3 的旧电脑。
突然间,至少有两种字体,Arial 和 Courier New,看起来开始不同了。Arial 可以忍受,但有点模糊;曲线长出了额外的像素,一些字符有放大的元素(例如,数字 4 的水平线高两个像素,数字 5 的水平线只有一个像素)。Courier New 变得非常糟糕,似乎实际上缺少了整条水平扫描线。
额外的像素会让人联想到 ClearType,但这些设置是正确的(并且很久以前就未曾改变过),而将它们设置为错误的值,然后返回到正确值是无用的。
我检查了几个其他问题和解决方案看起来很有希望但似乎没有什么效果。
我以为字体不知怎么损坏了(其他字体看起来都正常 - 我尽可能地从 Courier New 切换到 Consolas),我用备份替换了它们。然后我还将系统恢复到一周前的配置,这肯定是可以正常工作的。但效果不明显。
删除字体缓存(C:\WINDOWS\system32\FNTCACHE.DAT
)后,下次重启时字体会重新变小一些(正如预期的那样),但并不能解决问题。
除此之外,电脑运行正常,所有其他字体都像往常一样呈现;我设法检索了两个月前的屏幕截图,其中包含一些使用几种字体的文本,通过重写相同的单词,比较了两张图像,它们每个像素都是相同的(不幸的是,屏幕截图中没有包含 Arial 或 Courier New - 但要知道这两种字体都不正常,我不需要测试)。
我真的不知道到底是什么原因导致的这种情况。
答案1
事实证明,Windows 无法准确解析 True Type 字体中的所有字段和数据结构,因此有可能淘气“字体”向 Windows 呈现无效信息并导致其崩溃,或者从理论上夺取控制权并执行恶意代码。
由于可以在网站中嵌入 True Type 字体,这会带来一些非常令人不安的影响 - 尤其是大多数防病毒软件通常不会检查字体太近了。您访问一个网站,或者可能只是一个包含广告 HTML 横幅的网页有自己的字体,然后砰!,pwn3d。
因此,KB3013455 非常正确地修复了这个问题,增加了更多检查;并且不良字体再也无法执行任何操作。
但如果...会发生什么?一些系统字体没有通过同样的检查或包含以下信息稍微偏离,但由于从未进行过所需的检查和设置,因此没有人意识到这一点?
有时会发生这样的情况:那些稍微有点无意的字体(而不是其他字体)突然开始出现问题——向系统报告以前从未报告过的大小和提示。而且它们看起来有点糟糕——Arial——或者几乎无法阅读——Courier New。
直到新的修复程序提供了两组字体文件的“正确行为”版本(我认为有八个 - 普通、斜体、粗体和粗斜体,各两个)。
事情就是这样的。
直到新的修复出现之前,选择是:
在所有受影响的程序中将这两种字体替换为合适的替代字体。Segoe UI 和 Consolas 对我来说很好用(我还听说过一种名为因科索拉塔)。对于某些浏览器,可以通过插件或设置等待修复字体出现。理想情况下,这不会花很长时间。在此期间,PC 受到保护,免受“字体攻击”。受到推崇的。
- 修复 Firefox:
userContent.css
在 Firefox 配置文件中找到该文件。如果没有这样的文件,请找到目录AppData\Mozilla\Firefox\Profiles\RANDOM_STRING\chrome
并创建一个名为 的文件userContent.css
。在此文件位置(如果已存在,则添加)
@font-face { font-family: 'Arial'; src: local('Segoe UI'); } @font-face { font-family: 'Courier New'; src: local('Consolas'); } @font-face { font-family: 'Times New Roman'; src: local('Linux Libertine'); }
- 修复 Firefox:
(当然必须安装“本地”字体!)。
卸载 KB3013455 修复程序(并且仍然容易受到攻击)。但也许你不能。
- 简单:KB3013455是控制面板、应用程序、[x] 显示更新、按日期排序,然后查找 2015 年 1 月或 2 月。卸载 (*)。但根据 (#),它可能不在那里。
- 几乎同样简单:开始 > 附件 > 系统实用程序 > 系统还原,然后还原以前的配置。您应该看到“软件分发服务”。在此之前选择“系统关闭”检查点。重新启动,您就完成了 (*)。根据 (#),您可能没有可用的还原点。
- 很难。从一些完整备份中检索 2015 年 1 月之前的副本
win32k.sys
。从 Linux 启动盘或 Windows 救援盘启动。将现有的 win32k.sys 重命名为 win32k.xyz,将好的 win32k.sys 复制到 C:\WINDOWS\SYSTEM32,重新启动并希望它能正常工作。
(*)下次启动时或之后不久,系统将要求更新一个或多个软件包,您需要不是安装 KB3013455 并勾选“以后不要问我”。如果 (#) 强制更新而不告知任何信息,或者字体看起来不错,但在一次或多次重启后又变得模糊,则 (#) 是罪魁祸首,但如何解决问题取决于其性质。
Windows XP不能更新,因为它已经过时了。为什么要更新呢?因为有办法让它在它应该过时很久之后仍然保持活力。我发现的一个修复方法是让它报告为“WEPOS 系统”,这是一种用于 ATM 的 XP 版本,支持几年(?),并进行注册表“修复”。另一种方法是使用一个实用程序从某处- 可能是 WEPOS Windows 更新网站,或者某个病毒领主的地下室坦克 - 并诱使 XP 相信它是官方的 Windows 更新服务。无论更新 Windows 的是什么,您都需要告诉它保留 KB3013455独自的。
更新:你可能要感谢“修复/更新”XP 的东西,因为它解决了 Arial/Courier/Times 的混乱问题
以下是对已终止使用寿命的 XP 进行或多或少静默更新的可能原因列表:
- “WEPOS”注册表黑客。
- 与 McAfee 有关的事情(由 @rboblenz 报告)。我发现了一些与“无法更新 XP”相关的文章,这似乎意味着 McAfee 有一些能力更新 XP,但其网站没有明确说明。即便如此,如果您有 McAfee 产品,这可能是原因。
- 一些工具允许(已)拥有盗版XP 副本和保持更新和,显然,在 EOL 下载更新后保持更新...某处(谁会不愿意将自己的数据(可能还包括银行账户凭证)信任给这样的解决方案呢?毕竟,最坏的情况又能是什么呢?)
答案2
该问题已被发现并且微软已经提供了补丁。
在此页面上
http://support.microsoft.com/kb/3013455
您可以获得 Windows 更新 3037639。安装它,重新启动,就这样......
答案3
我在 Vista Home Premium SP2 中使用 Courier New 和 Arial 字体时也遇到了同样的问题。很高兴我不是唯一遇到这个问题的人。
KB3013455 显然是 McAfee 于 2 月 11 日安装的;同时还安装了数十个 Office 2007 更新。我找到了它,看起来它正在卸载。现在要重新启动。
还有免费的“Dark Courier.TTF”可用,它非常好,并且解决了 Courier 中您可以选择备用字体的问题。