BSOD-无法验证 ntoskrnl.exe 的时间戳

BSOD-无法验证 ntoskrnl.exe 的时间戳

最近,我的戴尔台式机在长时间运行后会随机崩溃。转储文件中写入了以下信息:

无法加载映像 \SystemRoot\system32\ntoskrnl.exe,Win32 错误 0n2
警告:无法验证 ntoskrnl.exe 的时间戳
错误:模块加载已完成,但无法为 ntoskrnl.exe 加载符号 Windows Server 2008/Windows Vista 内核版本 6001(Service Pack 1)MP(4 个进程)免费 x64
产品:WinNt,套件:TerminalServer SingleUserTS 个人
计算机名称:
内核基数 = 0xfffff800 01e5c000 PsLoadedModuleList = 0xfffff8000201edb0
调试会话时间:2009 年 8 月 31 日星期一 19:33:29.995(GMT-7)
系统启动时间:0 天 11:59:15.563

有人遇到过 ntoskrnl.exe 导致 Windows Vista 崩溃的问题吗?我正在运行 Windows Vista 64 位家庭高级版

更新

上周,在我的计算机上自动安装了最新的 Windows Vista 更新 (KB973879、KB973874、KB970653 和 KB972036) 后,开始出现此问题。我还卸载了旧版本的 McFee Security Center,并安装了 AVS Anti-Virus Free Editon 8.5。

此外,当我将 iPhone 与计算机断开连接时,也会出现 BSOD。

@Wil — 有没有建议的工具来确定我的工作站上是否安装了 roolkit。

更新 2

以下是我最近一次 BSOD 的崩溃代码。此外,我还必须重新安装 Belkin G 无线 USB 网络适配器的驱动程序,并且它清除了 IE8 中的 cookie 缓存。

BCCode:1000007e
BCP1:FFFFFFFFC0000005
BCP2:FFFFF800021D3B81
BCP3:FFFFFA60017B4798
BCP4:FFFFFA60017B4170

更新 3

@Wil - 我尝试运行 Rootkit Revealer,它将以下应用程序错误写入事件日志:

错误应用程序 RootkitRevealer.exe,版本 1.71.0.0,时间戳 0x44e255aa,错误模块 RootkitRevealer.exe,版本 1.71.0.0,时间戳 0x44e255aa,异常代码 0xc0000005,故障偏移量 0x000040cd,进程 ID 0x11b0,应用程序启动时间 0x01ca2ab8f0adc004。

答案1

它似乎其他人也遇到过同样的问题,特别是在 Windows 更新之后。这听起来像是一个较低级别的问题,搜索后找到了几个可能的解决方案:

  • 从 Windows DVD 中替换 ntoskrnl.exe。
  • 在驱动器上运行 chkdsk
  • 运行记忆测试

就我个人而言,我宁愿全新安装 Windows(当然是在备份所有文件之后),而不是进行排除法并浪费时间。

答案2

这表明调试器(可能是 WinDbg)无法加载ntoskrnl.exe。虽然确实有可能某些恶意程序已经替换了您的程序ntoskrnl.exe(如 Wil 所建议的那样),但更可能的解释是您没有将 WinDbg 配置为从 Microsoft 的公共符号服务器下载符号。

尝试运行.symfix!sym noisy命令,然后!analyze -v再次尝试运行。如果这没有帮助,请发布所有相关的调试器输出(已!sym noisy打开)。(发布实际的小型转储也可能有帮助。)例如,您省略的一些输出包括符号路径:

Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [C:\temp\oops.dmp]
Mini Kernel Dump File: Only registers and stack trace are available

Symbol search path is: srv*C:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is: 
Unable to load image \SystemRoot\system32\ntoskrnl.chk, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntoskrnl.chk
*** ERROR: Module load completed but symbols could not be loaded for ntoskrnl.chk
Windows Server 2008/Windows Vista Kernel Version 6002 MP (2 procs) Checked x64

如果您的符号路径设置正确,则由于硬件故障导致的内存损坏可能是另一种可能的非恶意软件解释。尝试运行 MemTest86+ 几个小时。

关于错误检查代码信息:错误检查 0x1000007e 是SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M。相关异常是 0xC0000005,。STATUS_ACCESS_VIOLATION如果不在调试器中进一步检查,其他三个参数不会提供太多见解。这可能是由于驱动程序错误、超频、内存故障、磁盘上的文件损坏/替换、尝试利用系统服务中的缓冲区溢出失败、宇宙射线撞击 PC 的 RAM 芯片之一等造成的。

答案3

不确定这是否对您有帮助,我不是专家,但我刚刚遇到了这个问题。我提交了报告,微软弹出了一个页面,给出了该问题的答案。他们说这很可能是硬盘错误,Windows 无法从驱动器读取数据,并给出了几个原因。其中一个原因是我刚刚从外部媒体或驱动器将一个大文件传输到我的驱动器。我刚刚将我的 win cd 传输到我的硬盘。抱歉,但我忘了其他原因是什么,但它们也只是简单的事情。他们说要运行 chkdsk。

答案4

是的。

这不是一个随机错误,通常是某种事情的征兆非常严肃的。

它通常是由严重的恶意软件(例如 rootkit)、可能破坏内核的不良防病毒软件或某些人们用来编辑系统文件的“黑客”引起的。

无论如何,这都是很严重的。

您可以从 Vista cd 转到恢复控制台/命令提示符,并在顶部替换此文件,因为它并不是一个安装所独有的。

您可以从其他人的机器上复制它,只要它是相同的服务包级别 - 不能 100%确定常规更新级别是否会影响它,然后将其复制到同一个位置,您就应该能够启动。

话虽如此,就我个人而言,我会将重要文件从系统中移除,然后从头开始重新安装。同样,此错误并非随机出现,通常是由其他非常严重的问题引起的,因此即使您修复了它,系统中也可能会出现其他意外情况,这些情况会在以后显现出来。

编辑 - 对于 rootkit,没有真正的明确答案,因此我建议从头开始重新安装。Microsoft / Sysinternals 制作“Rootkit 揭露者”,这是一种识别工具,但它并不能真正去除它们。我建议你阅读产品页面,因为它解释了很多有关 rootkit 的知识。

相关内容