0x00 缘起
在全新安装的Windows 11 24H2 专业版系统中,使用PowerShell或者CMD命令行运行处于网络存储器中的EXE可执行文件时,将100%出现代码为0x0000003B的蓝屏现象。使用联想蓝屏诊断工具对蓝屏DMP文件进行分析并没有报告导致蓝屏的具体原因以及处理方法。
使用WinDBG使用!analyze -v分析蓝屏DMP文件具有以下代码:
******************************************************************************
* *
* 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: fffff80523a3156f, Address of the instruction which caused the BugCheck
Arg3: ffffa78304205c60, Address of the context record for the exception that caused the BugCheck
Arg4: 0000000000000000, zero.
Debugging Details:
------------------
KEY_VALUES_STRING: 1
Key : Analysis.CPU.mSec
Value: 2062
Key : Analysis.Elapsed.mSec
Value: 7049
Key : Analysis.IO.Other.Mb
Value: 4
Key : Analysis.IO.Read.Mb
Value: 0
Key : Analysis.IO.Write.Mb
Value: 24
Key : Analysis.Init.CPU.mSec
Value: 875
Key : Analysis.Init.Elapsed.mSec
Value: 192780
Key : Analysis.Memory.CommitPeak.Mb
Value: 88
Key : Analysis.Version.DbgEng
Value: 10.0.27704.1001
Key : Analysis.Version.Description
Value: 10.2408.27.01 amd64fre
Key : Analysis.Version.Ext
Value: 1.2408.27.1
Key : Bugcheck.Code.LegacyAPI
Value: 0x3b
Key : Bugcheck.Code.TargetModel
Value: 0x3b
Key : Dump.Attributes.AsUlong
Value: 21808
Key : Dump.Attributes.DiagDataWrittenToHeader
Value: 1
Key : Dump.Attributes.ErrorCode
Value: 0
Key : Dump.Attributes.KernelGeneratedTriageDump
Value: 1
Key : Dump.Attributes.LastLine
Value: Dump completed successfully.
Key : Dump.Attributes.ProgressPercentage
Value: 0
Key : Failure.Bucket
Value: AV_appid!SmartlockerCheckUninstallStringEA
Key : Failure.Hash
Value: {eaffc04d-0ec7-3e94-c878-165eb1d3b5f5}
Key : Hypervisor.Enlightenments.ValueHex
Value: 7497cf94
Key : Hypervisor.Flags.AnyHypervisorPresent
Value: 1
Key : Hypervisor.Flags.ApicEnlightened
Value: 1
Key : Hypervisor.Flags.ApicVirtualizationAvailable
Value: 0
Key : Hypervisor.Flags.AsyncMemoryHint
Value: 0
Key : Hypervisor.Flags.CoreSchedulerRequested
Value: 0
Key : Hypervisor.Flags.CpuManager
Value: 1
Key : Hypervisor.Flags.DeprecateAutoEoi
Value: 0
Key : Hypervisor.Flags.DynamicCpuDisabled
Value: 1
Key : Hypervisor.Flags.Epf
Value: 0
Key : Hypervisor.Flags.ExtendedProcessorMasks
Value: 1
Key : Hypervisor.Flags.HardwareMbecAvailable
Value: 1
Key : Hypervisor.Flags.MaxBankNumber
Value: 0
Key : Hypervisor.Flags.MemoryZeroingControl
Value: 0
Key : Hypervisor.Flags.NoExtendedRangeFlush
Value: 0
Key : Hypervisor.Flags.NoNonArchCoreSharing
Value: 1
Key : Hypervisor.Flags.Phase0InitDone
Value: 1
Key : Hypervisor.Flags.PowerSchedulerQos
Value: 0
Key : Hypervisor.Flags.RootScheduler
Value: 0
Key : Hypervisor.Flags.SynicAvailable
Value: 1
Key : Hypervisor.Flags.UseQpcBias
Value: 0
Key : Hypervisor.Flags.Value
Value: 38408431
Key : Hypervisor.Flags.ValueHex
Value: 24a10ef
Key : Hypervisor.Flags.VpAssistPage
Value: 1
Key : Hypervisor.Flags.VsmAvailable
Value: 1
Key : Hypervisor.RootFlags.AccessStats
Value: 1
Key : Hypervisor.RootFlags.CrashdumpEnlightened
Value: 1
Key : Hypervisor.RootFlags.CreateVirtualProcessor
Value: 1
Key : Hypervisor.RootFlags.DisableHyperthreading
Value: 0
Key : Hypervisor.RootFlags.HostTimelineSync
Value: 1
Key : Hypervisor.RootFlags.HypervisorDebuggingEnabled
Value: 0
Key : Hypervisor.RootFlags.IsHyperV
Value: 1
Key : Hypervisor.RootFlags.LivedumpEnlightened
Value: 1
Key : Hypervisor.RootFlags.MapDeviceInterrupt
Value: 1
Key : Hypervisor.RootFlags.MceEnlightened
Value: 1
Key : Hypervisor.RootFlags.Nested
Value: 0
Key : Hypervisor.RootFlags.StartLogicalProcessor
Value: 1
Key : Hypervisor.RootFlags.Value
Value: 1015
Key : Hypervisor.RootFlags.ValueHex
Value: 3f7
BUGCHECK_CODE: 3b
BUGCHECK_P1: c0000005
BUGCHECK_P2: fffff80523a3156f
BUGCHECK_P3: ffffa78304205c60
BUGCHECK_P4: 0
FILE_IN_CAB: 102424-11718-01.dmp
TAG_NOT_DEFINED_202b: *** Unknown TAG in analysis list 202b
DUMP_FILE_ATTRIBUTES: 0x21808
Kernel Generated Triage Dump
FAULTING_THREAD: ffffe50356cd80c0
CONTEXT: ffffa78304205c60 -- (.cxr 0xffffa78304205c60)
rax=0000000000000028 rbx=0000000000000000 rcx=ffff808e26556380
rdx=ffffa78304206718 rsi=ffff808e26556380 rdi=0000000000000000
rip=fffff80523a3156f rsp=ffffa783042066b0 rbp=ffffa78304206730
r8=ffffa783042066f0 r9=0000000000000000 r10=ffffa78304206218
r11=ffffa78304206118 r12=0000000000000000 r13=ffffffff800025b8
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei pl zr na po nc
cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00050246
appid!SmartlockerCheckUninstallStringEA+0x103:
fffff805`23a3156f 410fb74724 movzx eax,word ptr [r15+24h] ds:002b:00000000`00000024=????
Resetting default scope
BLACKBOXBSD: 1 (!blackboxbsd)
BLACKBOXNTFS: 1 (!blackboxntfs)
BLACKBOXWINLOGON: 1
CUSTOMER_CRASH_COUNT: 1
PROCESS_NAME: powershell.exe
STACK_TEXT:
ffffa783`042066b0 fffff805`23a325e5 : ffffffff`80003550 ffffe503`5db22ea0 00000000`00000005 00000000`00000000 : appid!SmartlockerCheckUninstallStringEA+0x103
ffffa783`04206760 fffff805`23a345a4 : ffffffff`80003550 ffff808e`1e014e68 ffff808e`1e014e68 ffffa783`04207590 : appid!SmartlockerVerifyProcess+0x261
ffffa783`042068a0 fffff805`23a30c90 : ffffffff`80003550 ffffffff`800025b8 00000000`00000000 ffff808e`00000000 : appid!SrpVerifyProcess+0x204
ffffa783`04206950 fffff805`23a30763 : ffffe503`4d5c95f0 ffffa783`04206b89 ffffe503`4469f040 fffff805`8e73d89a : appid!AipCreateProcessNotifyRoutine+0x314
ffffa783`04206ad0 fffff805`8ecb0386 : ffffa783`04206c30 ffffa783`04206c30 ffffe503`48a1e080 ffffa783`04207590 : appid!AiProcessNotifyRoutine+0x103
ffffa783`04206bf0 fffff805`8ecab173 : 00000000`00000000 00000000`00000000 00000000`00000001 ffffe503`5db22ea0 : nt!PspCallProcessNotifyRoutines+0x152
ffffa783`04206cc0 fffff805`8ec73d79 : ffffe503`5cb30080 ffffe503`48a1e080 ffffa783`04207450 ffffa783`04207318 : nt!PspInsertThread+0x7ab
ffffa783`04206d90 fffff805`8ea87158 : 00000000`00000000 00000000`0000000c 00000000`00000000 00000000`00000000 : nt!NtCreateUserProcess+0xa29
ffffa783`04207a30 00007ffb`b5ec1044 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x28
0000000f`bb2cba78 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffb`b5ec1044
SYMBOL_NAME: appid!SmartlockerCheckUninstallStringEA+103
MODULE_NAME: appid
IMAGE_NAME: appid.sys
IMAGE_VERSION: 10.0.26100.1882
STACK_COMMAND: .cxr 0xffffa78304205c60 ; kb
BUCKET_ID_FUNC_OFFSET: 103
FAILURE_BUCKET_ID: AV_appid!SmartlockerCheckUninstallStringEA
OSPLATFORM_TYPE: x64
OSNAME: Windows 10
FAILURE_ID_HASH: {eaffc04d-0ec7-3e94-c878-165eb1d3b5f5}
Followup: MachineOwner
---------
微软社区Jarl Lee对于0x0000003B提供了以下处理方法:
我会建议您采取下面的方法:
========================================
#方法A 卸载和重装相关驱动:
1. 回到桌面,右键点击左下方的Windows标志(或者按下WIN+X组合键)
2. 菜单选取【设备管理器】
3. 寻找相关的设备
4. 右键点击【卸载】,选择【是】
5. 重新启动电脑
6. Windows 将会尝试重新安装驱动程式
微软官方有详细简易的《Windows 10 中更新驱动程序》教学:
https://support.microsoft.com/zh-cn/help/402844...
========================================
#方法B 停止非核心的程序运作(包括第三方杀毒、优化软体)、卸载可能导致蓝屏的软件:
1. 卸载设备中的第三方杀毒、管家、优化软件
2. 同时按【Windows 徽标键+R】,输入 【msconfig】,按回车(Enter)
3. 点击 【服务】>【隐藏所有 Microsoft 服务】>【全部禁用】
4. 启动【任务管理器】,点击 【启动】 选项卡,将所有启动项都禁用
5. 重启设备
上述建议以及解决方案均不能解决当前特地场景下出现蓝屏的问题。
0x01 环境
1. 硬件参数:
- CPU:AMD Ryzen 9 6900HX with Radeon Graphics 3.30 GHz;
- 内存:海力士Adia 16GB(8x2) 5600MT;
2. 软件参数:
- Windows:Windows 11 专业版 24H2
0x02 复现
在全新安装的Windows 11 专业版 24H2中,将局域网内的SMB服务器进行“映射网络驱动器”操作映射到本地,文件夹参数:"\\wangsens-air.lan\share"。
假设在网络驱动器Z盘中存在可执行文件main.exe,使用PowerShell执行以下命令:
cd Z://; .\main.exe
此时将100%触发蓝屏。
0x03 研究
使用ChatGPT 4-o分析Bugcheck Analysis信息,其回答如下:
分析蓝屏原因
根据您提供的蓝屏(BSOD)错误分析日志,蓝屏错误代码为
SYSTEM_SERVICE_EXCEPTION (3b)
,这通常表示在执行系统服务例程时发生了异常。具体分析如下:
错误代码及原因:
- 错误代码:
3b
- Bugcheck参数:
Arg1: 0xc0000005
:表示发生了访问违规(Access Violation),即尝试读取或写入无效的内存地址。Arg2: fffff80523a3156f
:导致错误的指令地址。Arg3: ffffa78304205c60
:异常发生时的上下文记录地址。故障模块:
- 模块名:
appid.sys
- 函数名称:
SmartlockerCheckUninstallStringEA
- 这是一个第三方驱动程序,通常与某些安全软件、应用保护软件或系统优化工具相关联。
导致崩溃的具体原因:
- 在
appid.sys
模块中,SmartlockerCheckUninstallStringEA
函数在尝试访问内存地址[r15+24h]
时发生了访问违规。这可能是由于驱动程序中的编程错误、与其他驱动程序的不兼容,或者驱动程序本身已损坏。相关进程:
- 进程名称:
powershell.exe
- 这是一个系统进程,通常不会直接导致蓝屏,但可能与某些自动化脚本或系统管理任务相关。
建议的解决步骤
要解决此蓝屏问题,可以按照以下步骤进行排查和修复:
更新相关软件和驱动程序:
- 识别
appid.sys
所属的软件:通常appid.sys
与某些安全软件(如杀毒软件、应用保护软件)相关。请检查系统中安装的所有第三方安全或系统优化软件,特别是最近安装或更新的。- 更新软件:访问相关软件的官方网站,下载并安装最新版本。这些更新通常包含错误修复和兼容性改进。
卸载有问题的软件:
- 如果您最近安装了某些安全软件或系统优化工具,尝试暂时卸载这些软件,观察蓝屏是否仍然发生。
- 卸载步骤:
- 打开 控制面板 > 程序和功能。
- 找到相关软件,选择卸载并按照提示完成。
运行系统文件检查和修复:
系统文件检查(SFC):
- 打开 命令提示符(以管理员身份运行)。
- 输入以下命令并按回车:
bash复制
sfc /scannow
- 等待扫描完成,按照提示修复发现的问题。
部署映像服务和管理(DISM):
- 在 命令提示符 中,输入以下命令并按回车:
bash复制
DISM /Online /Cleanup-Image /RestoreHealth
- 等待操作完成。
检查系统更新:
- 确保您的Windows操作系统是最新的,已安装所有重要和可选更新。
- 更新步骤:
- 打开 设置 > 更新和安全 > Windows 更新。
- 点击 检查更新 并安装所有可用更新。
进行内存测试:
- 有时候,内存问题也会导致访问违规错误。建议运行 Windows 内存诊断工具。
- 运行内存诊断:
- 按
Win + R
键,输入mdsched.exe
,然后按回车。- 选择 立即重新启动并检查问题。
- 让诊断工具完成测试,并查看结果。
检查是否存在恶意软件:
- 使用可靠的杀毒软件进行全面系统扫描,确保系统中没有恶意软件干扰。
回滚最近的更改:
- 如果蓝屏问题在安装某些软件或驱动更新后开始出现,尝试使用 系统还原 回到更早的还原点。
禁用或管理启动项:
- 有时候,启动项中的第三方程序会导致驱动冲突。
- 管理启动项:
- 按
Ctrl + Shift + Esc
打开 任务管理器。- 转到 启动选项卡。
- 禁用不必要的启动项,尤其是与系统安全或优化相关的程序,看看是否改善稳定性。
联系软件供应商或技术支持:
- 如果问题仍然存在,建议联系相关软件的技术支持团队,提供蓝屏日志以获取专业帮助。
预防措施
- 定期备份重要数据:使用Windows自带的备份工具或者第三方备份软件,确保数据安全。
- 保持系统和软件的更新:及时安装Windows更新和应用程序补丁,以获得最新的功能和安全性修复。
- 避免安装不可信的软件:仅从官方渠道或可信来源下载和安装软件,减少潜在的驱动冲突和恶意软件风险。
通过以上步骤,您应该能够定位并解决导致
SYSTEM_SERVICE_EXCEPTION (3b)
蓝屏错误的根本原因。如果问题依然无法解决,建议寻求专业技术人员的帮助,以进一步诊断和修复系统问题。
其回答表示发生了访问违规(Access Violation),即尝试读取或写入无效的内存地址。综合微软社区回答以及ChatGPT回答,从以下角度进行研究:
1. SMB服务器本身问题。
- 使用Windows 安全模式进行访问;
2. Windows 组件受损。
- 重装Windows 11 24H2;
2. 网络驱动。
- 由于问题出现在有线网络,更换为无线网络进行测试。
3. 安全软件(权限问题)。
- 卸载 安全软件火绒;
- 关闭 WindowsDefender 中内存完整性等相关保护。
- 添加 网络驱动器为信任区域,并允许相关禁止项。
针对上述研究思路,依次进行实验验证:
1. 使用Windows 安全模式进行访问,可以执行上述“蓝屏操作”且不会蓝屏。
2. 重装Windows 11 24H2,执行上述“蓝屏操作”会蓝屏;
3. 更换为无线网络进行测试,执行上述“蓝屏操作”会蓝屏;
4. 卸载 安全软件火绒,执行上述“蓝屏操作”会蓝屏;
5. 关闭 WindowsDefender 中内存完整性等相关保护, 添加 网络驱动器为信任区域,并允许相关禁止项,可以执行上述“蓝屏操作”且不会蓝屏。
通过实验可知,“WindowsDefender相关防护”以及“权限设置”是造成使用命令行运行网络驱动器可执行文件导致蓝屏的主要原因。
0x04 方法
针对使用命令行运行网络驱动器可执行文件导致蓝屏的问题,需要对WindowsDefender以及 Internet属性进行设置,具体设置如下。
1. WindowsDefender
1.1 通过安装火绒关闭(或其他安全软件)WD(WindowsDefender)的病毒和威胁防护。
1.2 关闭智能应用控制
1.3 关闭基于声誉的保护
1.4 关闭攻击防护
1.5 关闭内核隔离相关保护
- 关闭 内存完整性
- 关闭 内核模式硬件强制堆栈保护
- 关闭 本地安全机构保护
- 关闭 Microsoft 易受攻击的驱动程序阻止列表
综合ChatGPT的回答,猜测“内核隔离相关保护” 以及 “攻击防护” 中的相关操作可能造成“发生了访问违规(Access Violation)”问题,而导致蓝屏的出现。
2. Internet属性设置
2.1 添加受信任的站点
- 在控制面版中启动 Internet选项;
- 添加网络存储器路径
2.2 自定义区域安全级别
- 在“受信任的站点中”打开"自定义级别"
- 启用加载应用程序和不安全文件
3. 其他说明
上述方法中每一个步骤并非必须,研究中并没有找出导致蓝屏操作的根本原因,但是进行整体设置能够解决蓝屏问题。
0x05 结论
对于Windows 11 24H2 专业版系统中使用命令行运行处于网络存储器中的EXE可执行文件时所出现0x0000003B的蓝屏的问题。通过实验得知,可能是由于“WindowsDefender”相关防护以及“Internet属性设置”阻止了非特权指令陷入内核被执行导致发生了内存访问违规而出现0x0000003B蓝屏。通过安装第三方安全软件、关闭“WindowsDefender”相关防护以及正确配置“Internet属性设置”可以解决上述蓝屏问题的发生。
0x06 参考
1. 查找/分析Windows蓝屏DMP文件_蓝屏文件在哪个文件夹-CSDN博客
2. 系统蓝屏日志DMP文件分析工具WinDbg及教程_windbg的日志分析软件-CSDN博客
3. 微软社区:win10出现蓝屏,错误代码0x0000003b
4. 消除Windows下打开网络文件时的安全警告 - 简书
5. win10创建网络磁盘映射,win10访问samba共享文件夹_win10添加映射网络文件夹-CSDN博客
0x07 后记
- 己欲立而立人,己欲达而达人。