一、重现环境:

1、windows10版本

2、idapro7_5499
3、vs2008运行库(vcredist2008sp1.zip)

二、触发蓝屏

1、触发poc

#include <iostream>
#include <Windows.h>

int main()
{
WCHAR fileName[] = L”\\.\globalroot\device\condrv\kernelconnect”;
WIN32_FILE_ATTRIBUTE_DATA data;
GetFileAttributesEx(fileName, GetFileExInfoStandard, &data);
}

编译运行,蓝屏;

2、设置蓝屏生成dump
“我的电脑”->”属性”->”高级”->”启动与恢复设置”

三、windbg分析

3.1、符号路径设置
“File”->”Symbol File Path”,输入”SRVC:\Symbolshttp://msdl.microsoft.com/download/symbols”

点击”Save Workspace”保存,避免下次打开还要重新输入配置;

3.2、windbg加载dump文件

Microsoft (R) Windows Debugger Version 10.0.19041.685 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [C:\Windows\minidump\012721-9562-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available

* Path validation summary **
Response Time (ms) Location
Deferred SRVC:\Symbolshttp://msdl.microsoft.com/download/symbols
Symbol search path is: SRVC:\Symbolshttp://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 10 Kernel Version 18362 MP (12 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Machine Name:
Kernel base = 0xfffff80326600000 PsLoadedModuleList = 0xfffff80326a48150
Debug session time: Wed Jan 27 17:43:46.105 2021 (UTC + 8:00)
System Uptime: 4 days 6:38:28.252
Loading Kernel Symbols
………………………………………………………
……………………………………………………….
……………………………………………………….
…..
Loading User Symbols
Loading unloaded module list
………..
For analysis of this file, run !analyze -v
8: kd> !analyze -v


  • *
  • Bugcheck Analysis *
  • *

SYSTEM_SERVICE_EXCEPTION (3b)
An exception happened while executing a system service routine.
Arguments:
Arg1: 00000000c0000005, Exception code that caused the bugcheck
Arg2: fffff80323b4b04f, Address of the instruction which caused the bugcheck
Arg3: fffff004a056c870, Address of the context record for the exception that caused the bugcheck
Arg4: 0000000000000000, zero.

Debugging Details:

KEY_VALUES_STRING: 1

Key  : Analysis.CPU.Sec
Value: 2Key  : Analysis.DebugAnalysisProvider.CPP
Value: Create: 8007007e on DESKTOP-MAMOHSHKey  : Analysis.DebugData
Value: CreateObjectKey  : Analysis.DebugModel
Value: CreateObjectKey  : Analysis.Elapsed.Sec
Value: 116Key  : Analysis.Memory.CommitPeak.Mb
Value: 79Key  : Analysis.System
Value: CreateObject

VIRTUAL_MACHINE: VMware

DUMP_FILE_ATTRIBUTES: 0x8
Kernel Generated Triage Dump

BUGCHECK_CODE: 3b

BUGCHECK_P1: c0000005

BUGCHECK_P2: fffff80323b4b04f

BUGCHECK_P3: fffff004a056c870

BUGCHECK_P4: 0

CONTEXT: fffff004a056c870 — (.cxr 0xfffff004a056c870)
rax=ffffd2081e3176a8 rbx=ffffd20822b8bbc0 rcx=0000000000000000
rdx=ffffd2081e317590 rsi=0000000000000000 rdi=ffffd2081e317590
rip=fffff80323b4b04f rsp=fffff004a056d260 rbp=0000000000000000
r8=ffffd2081e317590 r9=ffffd20821d638e0 r10=fffff80323b4b030
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=ffffd20821d638e0
iopl=0 nv up ei ng nz na po nc
cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00050286
condrv!CdpDispatchCleanup+0x1f:
fffff80323b4b04f 488b01 mov rax,qword ptr [rcx] ds:002b:0000000000000000=????????????????
Resetting default scope

BLACKBOXBSD: 1 (!blackboxbsd)

BLACKBOXNTFS: 1 (!blackboxntfs)

BLACKBOXPNP: 1 (!blackboxpnp)

BLACKBOXWINLOGON: 1

CUSTOMER_CRASH_COUNT: 1

PROCESS_NAME: ConsoleApplica

STACK_TEXT:
fffff004a056d260 fffff80326631f79 : ffffd2081e317590 fffff80326631e5d 0000000000000000 0000000000000000 : condrv!CdpDispatchCleanup+0x1f
fffff004a056d290 fffff80326be42b8 : 0000000000000000 ffffd20822b8bbc0 0000000000000000 ffffd2081e317590 : nt!IofCallDriver+0x59
fffff004a056d2d0 fffff80326be6939 : fffff004a056d820 0000000000000001 ffffd2081e317590 fffff80326be5b00 : nt!IopCloseFile+0x188
fffff004a056d360 fffff80326bed1bf : ffffd20821d638e0 ffffd20821d63800 ffffd20822bf3aa0 0000000000000001 : nt!IopParseDevice+0xd79
fffff004a056d4d0 fffff80326beb621 : ffffd20822bf3a00 fffff004a056d718 0000000000000040 ffffca0e016f26c0 : nt!ObpLookupObjectName+0x78f
fffff004a056d690 fffff80326c30234 : 0000000000000001 000000000043e048 0000000000000028 000000000043e930 : nt!ObOpenObjectByNameEx+0x201
fffff004a056d7d0 fffff803267d2d15 : ffffd208245b7080 0000000000000000 ffffd208245b7080 ffffd208213da760 : nt!NtQueryFullAttributesFile+0x1b4
fffff004a056da80 00007ffa23f9e8b4 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KiSystemServiceCopyEnd+0x25
000000000043e008 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x00007ffa`23f9e8b4

SYMBOL_NAME: condrv!CdpDispatchCleanup+1f

MODULE_NAME: condrv

IMAGE_NAME: condrv.sys

IMAGE_VERSION: 10.0.18362.1350

STACK_COMMAND: .cxr 0xfffff004a056c870 ; kb

BUCKET_ID_FUNC_OFFSET: 1f

FAILURE_BUCKET_ID: 0x3B_c0000005_condrv!CdpDispatchCleanup

OSPLATFORM_TYPE: x64

OSNAME: Windows 10

FAILURE_ID_HASH: {4713cd15-5baf-96a2-7e8b-3fec2da6a08d}Followup: MachineOwner

四、idapro分析condrv.sys

1、拷贝本机电脑(windows10操作系统)的condrv.sys文件到其它非C盘;
本次环境是在C:\Windows\WinSxS\amd64_microsoft-windows-console-driver_31bf3856ad364e35_10.0.18362.1_none_da133b564b0d4aee路径

2、idapro配置
为了在分析condrv.sys时自动加载微软提供的pdb调试符号文件,修改配置文件pdb.cfg(idapro安装根目录下的cfg文件底下),分别去掉PDBSYM_DOWNLOAD_PATH,PDBSYM_SYMPATH 注释

// PDB plugin

ifdef PC // INTEL 80×86 PROCESSORS

//
// The downloaded symbols are stored in the specified directory.
// Microsoft’s public symbol store is used for downloading the symbols.
//
// If this option is omitted or empty – use _NT_SYMBOL_PATH if set, otherwise use %TEMP%\ida directory
// If the value is not empty – use it

PDBSYM_DOWNLOAD_PATH = “c:\symbols”;

// Full symbol path (in _NT_SYMBOL_PATH format)
// If set, PDBSYM_DOWNLOAD_PATH and _NT_SYMBOL_PATH are ignored
PDBSYM_SYMPATH = “SRVc:\symbolshttp://symbols.mozilla.org/firefox;SRVc:\symbolshttp://msdl.microsoft.com/download/symbols”;

// remote server where win32_remote.exe is running
// used when loading PDB symbols on non-Windows platforms
// NB: it will be used only if there is not already an existing debugging session started
PDB_REMOTE_SERVER = “localhost”;
PDB_REMOTE_PORT = 23946
// password for the remote server
PDB_REMOTE_PASSWD = “”;

endif

首次打开condrv.sys,会询问并根据上面的配置下载符号文件到本地

出现下面的错误,是因为pdb.cfg配置文件中的符号本地存储路径不存在,手动创建C盘symbols文件夹即可;

3、vs2008 rumtime环境安装
重新打开idapro后,发现会报如下错误:failed to load pdb info. 不支持此接口
搜索得到的解决方案主要有两种情况
1、condrv.sys不要放在包含中文字符的路径;
2、需要安装vs2008 rumtime环境;

这里是因为第二种原因,安装后,再重新打开idapro加载condrv.sys文件
下载并加载好符号文件后,对应的函数名称就显示出来了

对比没加载符号文件的情况

4、最后,可以参考1的文件进行静态分析跟踪,蓝屏直接原因,condrv的设备对象,随后关闭该对象的时候进入IRP_MJ_CLEANUP分发函数,尝试释放资源,但在创建的时候由于被拒绝所以没有分配任何资源,导致释放资源时访问空指针最后系统BSOD。

查看原文

参考:
1、https://blog.csdn.net/xuandao_ahfengren/article/details/112855004
2、https://bbs.pediy.com/thread-265438.htm

Windows10蓝屏触发及分析相关推荐

  1. windows服务器查看系统异常,Windows服务器异常---查看系统日志--以蓝屏为例分析...

    现象场景: 客户报障,Windows 服务器出现异常,无法连接.首先查看硬件状态,设备是否为正常登录状态,硬件指示灯是否正常,可以查看一下Windows系统日志.以Windows Server 201 ...

  2. 虚拟服务器蓝屏,【原创】在虚拟机中运行系统导致实机系统蓝屏“0x000000F4”原因分析。...

    本帖最后由 羊羔助手 于 2020-3-26 16:48 编辑 在虚拟机中运行系统导致实机系统蓝屏"0x000000F4"原因分析. 通常虚拟机中的系统是与实机的系统没有任何关联的 ...

  3. Windows10蓝屏解决方案

    Windows10蓝屏解决方案 平常大家使用Windows10系统时难免会出现一些问题,而在工作中电脑突然蓝屏显得尤其让人烦恼.今天,我就来介绍几个常用的解决蓝屏小方法吧! 第一步 首先,出现蓝屏问题 ...

  4. 计算机蓝屏分析报告,Win7 又蓝屏了 附上分析报告,高手帮我看看!

    Win7 又蓝屏了 附上分析报告,高手帮我看看! Microsoft (R) Windows Debugger Version 6.11.0001.404 AMD64 Copyright (c) Mi ...

  5. Windows10蓝屏事件分析

    Windows10 BSOD分析 近期突然曝出能够让Windows10系统拒绝服务的蓝屏符号链接:\.\globalroot\device\condrv\kernelconnect,只要在Google ...

  6. win10蓝屏提示重新启动_关于网传0x000000F4蓝屏的临时分析解答

    各位小伙伴,大家好, 问题分析 从(Stop:0x000000F4)代码分析,疑似内存或硬盘问题,但是从朋友圈分析,突然批量出现,事情并非硬件导致. (1)目前了解Win7系统没有出现大面积蓝屏F4的 ...

  7. Windows10 蓝屏 DRIVER_IRQL_NOT_LESS_OR_EQUAL (vfilter.sys)的可能解决方法

    早上我的笔记本从休眠中开机的时候突然出现了蓝屏,这个蓝屏在前几天出现过了.两次提示的终止代码都一样.我的笔记本型号是DELL XPS15 9560 我的笔记本配置: 类别 型号 内存 16GB DDR ...

  8. 蓝屏含义原理分析处理方法代码电脑计算机故障系统安全 - 蓝屏知识大全

    目录 1含义2原理分析3处理方法4代码含义和解决-5原因分析6预防电脑蓝屏的-   含义 引蓝屏解释 1.故障检查信息 ***STOP 0x0000001E(0xC0000005,0xFDE38AF9 ...

  9. 虚拟内存不足造成的蓝屏_问题分析及解决

    之前蓝屏的问题一直在脑子里面转, 沉下心来, 踏实走一遍看看. 1.虚拟内存文件是什么? 起什么作用? 2.如何确定虚拟内存文件的大小? 3.如何设置虚拟内存文件? 首先来回答问题1 Windows操 ...

最新文章

  1. activiti 5.15.1 动态手动通过java编码方式,实现创建用户任务,动态指定个人,用户组,角色,指定监听的实现...
  2. php正则替换图片地址,求教 php正则把图片地址前部分替换
  3. matlab取角马为什么减一,动物世界角马为什么不敢攻击狮子?
  4. c语言加花指令,花指令的应用
  5. 爱奇艺体育:体验Serverless极致扩缩容,资源利用率提升40%
  6. 比特飞使用的是什么主题
  7. [No0000FD]C# 正则表达式
  8. OpenCV4每日一练day1:VS2015+opencv4.1.0+读图测试
  9. 大学计算机应用基础模拟试题,《大学计算机应用基础》模拟试题.doc
  10. C# EF6 更新对象
  11. 用python编计算器_python编计算器
  12. java贪吃蛇碰撞判定分析_java贪吃蛇碰撞检测
  13. 在VirtualBox上安装Linux的Guest Additions
  14. CVTE(视源股份)前端实习生面经
  15. 一文解读时间序列基本概念
  16. 水星USB无线网卡mw150us苹果macOS系统驱动成功
  17. 一起学习C语言:C语言发展历程以及定制学习计划
  18. Windows Update Downloader:系统补丁离线打
  19. java面试笔试资料 百度网盘
  20. 如何做一个基于微信电影播放小程序系统毕业设计毕设作品

热门文章

  1. db4o数据库的基本操作
  2. JMS(Java Messaging Service)基础
  3. 什么是API测试?开发必知的8种API自动化测试类型
  4. OpenSSL心血漏洞分析
  5. 计算机组成原理实验一 运算器实验
  6. 基于知识图谱的多模内容创作技术
  7. 大数据预测:未来最吸金的领域
  8. 红米2电信 android go,超能玩手机:如何让红米2电信版正确支持“全网通”?
  9. linux 列转行函数,Linux 文本行列转换
  10. 带你了解NLP的词嵌入