跳过正文
  1. 文章/

记录一次 Win10 蓝屏的处理过程

·436 字·3 分钟
作者
yellow13441
HLSay
时效性提示: 本文记录的是 Windows 10 时期的 WinDbg 界面、驱动程序和第三方软件下载流程,这些内容可能已经发生变化。实际排障前请结合当前 Windows/WinDbg 版本及官方文档确认。

本文原使用 GitHub 图床,迁移后相关图片已本地化。

情景描述
#

11月17日晚电脑出现蓝屏重启,错误代码为KERNEL_MODE_HEAP_CORRUPTION,如下图

安装 WinDbg 工具
#

请按照以下步骤在 Windows 10 中安装 WinDbg 工具:

  1. 在您的首选浏览器中导航至 Microsoft WinDbg 下载页面。
  2. 单击 Get(或“Install/Open”)按钮。
  3. 在弹出的对话框中单击 Open Microsoft Store。
  4. 单击 Install 按钮。
  5. 图中展示了 Microsoft 商店中的 WinDbg 应用程序

安装完成后,单击 Launch。

分析转储文件
#

  1. 请按照以下步骤在 Windows 10 中打开并分析转储文件:
  2. 按 Windows 键唤出搜索框,然后键入 WinDbg,
  3. 以管理员身份运行 WinDbg Preview。
    WinDbg Preview
  4. 单击左上角文件菜单,
  5. 单击 Start debugging 子菜单下的 Open Dump file
  6. 从文件夹位置选择转储文件 — 输入 %SystemRoot%\Minidump 后点击 Browse…
  7. 选中要检查的dmp文件,单击打开。
  8. 打开转储文件可能需要几分钟时间。进度条可作为有用的指示参考。
  9. 打开完毕后,点击Command窗口下的 !analyze -v 超链接(或在下方命令行输入该命令并按 Enter)
  10. 在分析完成之前,请留意进度条(大容量的转储文件可能需要很长的时间)。
  11. WinDbg 将显示分析结果以供查验。对结果进行研究将决定进一步的故障处理步骤,并可能揭示错误的原因。
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

KERNEL_MODE_HEAP_CORRUPTION (13a)
The kernel mode heap manager has detected corruption in a heap.
Arguments:
Arg1: 0000000000000011, Type of corruption detected
Arg2: ffffb08208400100, Address of the heap that reported the corruption
Arg3: ffffb082083ec0e0, Address at which the corruption was detected
Arg4: 0000000000000000

Debugging Details:
------------------

fffff8063cefb390: Unable to get MiVisibleState
Unable to get NonPagedPoolStart
Unable to get NonPagedPoolEnd
Unable to get PagedPoolStart
Unable to get PagedPoolEnd
HeapDbgInitExtension Failed

KEY_VALUES_STRING: 1

    Key  : Analysis.CPU.mSec
    Value: 6686

    Key  : Analysis.DebugAnalysisManager
    Value: Create

    Key  : Analysis.Elapsed.mSec
    Value: 10989

    Key  : Analysis.IO.Other.Mb
    Value: 0

    Key  : Analysis.IO.Read.Mb
    Value: 0

    Key  : Analysis.IO.Write.Mb
    Value: 1

    Key  : Analysis.Init.CPU.mSec
    Value: 1390

    Key  : Analysis.Init.Elapsed.mSec
    Value: 486414

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 101

    Key  : Bugcheck.Code.DumpHeader
    Value: 0x13a

    Key  : Bugcheck.Code.Register
    Value: 0x13a

    Key  : Dump.Attributes.AsUlong
    Value: 8

    Key  : Dump.Attributes.KernelGeneratedTriageDump
    Value: 1


FILE_IN_CAB:  111722-10750-01.dmp

DUMP_FILE_ATTRIBUTES: 0x8
  Kernel Generated Triage Dump

BUGCHECK_CODE:  13a

BUGCHECK_P1: 11

BUGCHECK_P2: ffffb08208400100

BUGCHECK_P3: ffffb082083ec0e0

BUGCHECK_P4: 0

POOL_ADDRESS: Unable to get NonPagedPoolStart
Unable to get NonPagedPoolEnd
Unable to get PagedPoolStart
Unable to get PagedPoolEnd
unable to get nt!MmSpecialPagesInUse
 ffffb082083ec0e0 

FREED_POOL_TAG:  None

BLACKBOXBSD: 1 (!blackboxbsd)


BLACKBOXNTFS: 1 (!blackboxntfs)


BLACKBOXPNP: 1 (!blackboxpnp)


BLACKBOXWINLOGON: 1

CUSTOMER_CRASH_COUNT:  1

PROCESS_NAME:  System

STACK_TEXT:  
ffffec03`2044f1d8 fffff806`3c78e77c     : 00000000`0000013a 00000000`00000011 ffffb082`08400100 ffffb082`083ec0e0 : nt!KeBugCheckEx
ffffec03`2044f1e0 fffff806`3c78e7dc     : 00000000`00000011 00000000`00000000 ffffb082`08400100 00000000`00000000 : nt!RtlpHeapHandleError+0x40
ffffec03`2044f220 fffff806`3c78e409     : 00000000`00000020 ffffb082`083ec000 00000000`00000202 ffffb082`1e80e010 : nt!RtlpHpHeapHandleError+0x58
ffffec03`2044f250 fffff806`3c651396     : 00000000`00000282 00000000`d153776f ffffb082`1e80e010 ffffb082`0f0fe0a8 : nt!RtlpLogHeapFailure+0x45
ffffec03`2044f280 fffff806`3c4a5232     : ffffb082`08400340 ffffec03`2044f4ff ffffec03`0810080c ffffb082`00000000 : nt!RtlpHpLfhSubsegmentFreeBlock+0x18c876
ffffec03`2044f330 fffff806`3cbb2149     : ffffb082`00000000 ffffb082`1e80e010 ffffb082`0f0fe0a8 01000000`00100000 : nt!ExFreeHeapPool+0x362
ffffec03`2044f410 fffff806`59181c95     : ffffb082`1704fb50 ffffb082`1e80e010 00000000`00000000 00000000`00000000 : nt!ExFreePool+0x9
ffffec03`2044f440 ffffb082`1704fb50     : ffffb082`1e80e010 00000000`00000000 00000000`00000000 ffffb082`18291c00 : PassGuard_x64+0x1c95
ffffec03`2044f448 ffffb082`1e80e010     : 00000000`00000000 00000000`00000000 ffffb082`18291c00 00000000`00000000 : 0xffffb082`1704fb50
ffffec03`2044f450 00000000`00000000     : 00000000`00000000 ffffb082`18291c00 00000000`00000000 00000000`00000000 : 0xffffb082`1e80e010


SYMBOL_NAME:  PassGuard_x64+1c95

MODULE_NAME: PassGuard_x64

IMAGE_NAME:  PassGuard_x64.sys

STACK_COMMAND:  .cxr; .ecxr ; kb

BUCKET_ID_FUNC_OFFSET:  1c95

FAILURE_BUCKET_ID:  0x13a_11_None_PassGuard_x64!unknown_function

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

FAILURE_ID_HASH:  {4b87af2a-da32-d8ca-8a06-dec6d0076795}

Followup:     MachineOwner
---------

找出罪魁祸首
#

从WinDbg给出的信息,可以在 119 行处明显看到导致系统崩溃的原因是一个名为PassGuard_x64的驱动程序。

打开everything(如果你没有这个程序,考虑安装一个),搜索PassGuard_x64.sys

打开该驱动的属性,可以看到数字签名方是北京微通新成网络科技有限公司.

PassGuard_x64.sys

Google 搜索北京微通新成网络科技有限公司,没有找到更多有价值的信息。

继续搜索PassGuard_x64.sys,看到下面两篇帖子。

这时我回想起,前段时间总有一个程序结束运行的弹窗,当时发现问题出在邮政银行的安全控件。联想到这个公司的经营范围,问题大概已经找到了。

重新找到邮政银行的安全控件,下载到本地后右键查看属性。

果然,同样是北京微通新成网络科技有限公司的数字签名。上次查到邮政的安全组件有问题时,我已经用他提供的Uninstall.exe卸载了,驱动还在,又一个国产毒瘤。

解决方法:
#

火绒 - 安全工具 - 文件粉碎(如果你没有这个程序,考虑安装一个)

参考资料
#

如何读取 Mini Dump 文件? | Dell 中国