MpDetours.dll:Microsoft Defender 的 API 拦截枢纽
Microsoft Malware Protection 组件族 · 用户态 Hook 支撑库
MpDetours.dll 是 Windows 内置防病毒引擎(Windows Defender / Microsoft Defender Antivirus)平台目录下的一个动态链接库。文件名中的 Mp 前缀代表 Microsoft Malware Protection,Detours 则源自微软研究院发布的同名用户态 API Hook 框架。它通常位于 C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.xxxx.x-0\ 这类带版本号的目录中,与 MpClient.dll、MpEngine.dll、MpSvc.dll、MpCmdRun.exe 等文件同处一室,随平台版本整体更新。
一、核心功能
- 函数拦截与调用重定向:以 inline hook、IAT/EAT 重定向方式挂钩 NtCreateFile、NtOpenProcess、RegOpenKeyEx、CreateProcessInternalW 等系统调用入口,在目标操作真正落地前取得控制权。
- 实时保护的数据源:把捕获到的文件读写、注册表修改、进程创建、脚本执行等事件上报给 MsMpEng.exe,供特征匹配、行为分析与云查杀判定使用。
- 脚本与内存扫描协作:与 AMSI 反恶意软件扫描接口配合,对 PowerShell、VBScript、WMI 等脚本内容做调用级预检。
- 自我保护与篡改防护:拦截对 Defender 自身进程、注册表键、服务配置的修改请求,支撑 Tamper Protection 与排除项保护。
- 遥测与合规上报:为 Microsoft Defender for Endpoint 等管理通道提供带上下文的调用链信息。
二、加载方式
该模块不由系统在启动阶段静态加载,而是在 WinDefend 服务拉起之后,由 MsMpEng.exe 与 MpSvc.dll 通过 LoadLibrary 动态载入。文件一旦被删除、损坏或版本不匹配,动态加载便会立即失败。
三、缺少该 DLL 的典型影响
- 实时保护无法启用,安全中心提示设备存在风险,托盘图标出现黄色感叹号。
- MsMpEng.exe 启动失败或反复崩溃,WinDefend 服务返回错误 0x8007007E(找不到指定模块),事件查看器记录服务异常中止。
- 快速扫描、完全扫描、自定义扫描均无法完成,MpCmdRun.exe 执行时报错退出。
- 病毒定义与平台更新停滞,安全智能更新失败。
- 篡改防护与排除项保护失效,恶意程序更容易关闭防护。
- 依赖 Mp* 接口的第三方安全软件、EDR 探针、MDE 传感器出现联动异常。
四、常见缺失原因与处理
精简版系统镜像、第三方优化清理工具误删、平台目录升级残留、杀软互删、磁盘坏道都可能造成文件丢失。推荐做法是运行 sfc /scannow 与 DISM /Online /Cleanup-Image /RestoreHealth 修复组件存储,或通过 Windows 更新重新安装 Defender 平台版本。切勿从第三方下载站单独下载该 DLL 覆盖到系统目录,此类文件常被植入后门或木马。