
从vdm文件中提取Windows Defender数据库并解包
- 本程序按原样分发,不提供任何担保;
- 无官方支持,如果你喜欢该工具,欢迎贡献。
功能
- 解包Windows Defender/Microsoft Security Essentials的VDM容器;
- 解密恶意软件删除工具(MRT.exe)中嵌入的VDM容器;
- 在不解包的情况下提取原始RMDX容器(-ec开关);
- 将基础VDM文件与delta文件合并(-m开关);
- 从解包/解密/合并后的容器中即时提取所有PE映像(-e开关):
- 转储VDLL(虚拟DLL);
- 转储VFS(虚拟文件系统)内容;
- 转储签名辅助映像;
- 转储NIS(网络检查系统)使用的GAPA(通用应用层协议分析器)映像;
- 代码可适配转储数据库的类型特定块(未实现);
- 比任何脚本都快。
MRT提取映像列表(版本5.71.15840.1)
https://gist.githubusercontent.com/hfiref0x/e4b97fb7135c9a6f9f0787c07da0a99d/raw/d91e77f71aa96bdb98d121b1d915dc697ce85e2a/gistfile1.txt
WD提取映像列表,mpasbase.vdm(版本1.291.0.0)
https://gist.githubusercontent.com/hfiref0x/38e7845304d10c284220461c86491bdf/raw/39c999e59ff2a924932fe6db811555161596b4a7/gistfile1.txt
来自NisBase.vdm(版本119.0.0.0)的NIS签名列表
https://gist.githubusercontent.com/hfiref0x/e9b3f185032fcd2afb31afe7bc9a05bd/raw/9bd9f9cc7c408acaff7b56b810c8597756d55d14/nis_sig.txt
使用方法
wdextract file [-e]
wdextract file [-ec]
wdextract baseFile deltaFile -m [-e]
wdextract baseFile -m deltaFile [-e]
- file - VDM容器文件名(*.vdm文件或MRT.exe可执行文件);
- baseFile - 基础VDM容器文件名;
- deltaFile - 要与基础文件合并的delta文件名;
- -e 可选参数,解包/解密/合并后从容器中提取所有发现的PE映像块;
- -ec 提取原始RMDX容器,不进行进一步处理(与-e和-m选项不兼容);
- -m 将基础VDM文件与delta文件合并;
- -mc 验证合并文件的校验和。
示例:
- wdextract c:\wdbase\mpasbase.vdm
- wdextract c:\wdbase\mpasbase.vdm -e
- wdextract c:\wdbase\mrt.exe
- wdextract c:\wdbase\mrt.exe -e
- wdextract c:\wdbase\mpasbase.vdm -ec
- wdextract c:\wdbase\mpasbase.extracted c:\wdbase\mpasdlta.extracted -m
- wdextract c:\wdbase\mpasbase.extracted c:\wdbase\mpasdlta.extracted -m -e
- wdextract c:\wdbase\mpasbase.extracted -m c:\wdbase\mpasdlta.extracted [-e] [-mc]
注意事项
- 输入文件将解包/解密到源目录,保存为%originalname%.extracted(例如,如果原始文件为c:\wdbase\mpasbase.vdm,解包后为c:\wdbase\mpasbase.extracted)。原始容器将提取为%originalname%.rdmx。合并后的文件将保存为%originalname%.merged。映像块将转储到wdextract当前目录下创建的"chunks"目录(例如,如果wdextract从c:\wdbase运行,则为c:\wdbase\chunks目录)。输出文件总是覆盖已有文件。
- 使用合并命令(-m)时,请确保合并的文件是之前由WDExtract解包/解密的文件。例如,如果要合并mpasbase.vdm的delta文件(即mpasdlta.vdm),则需要先解包mpasbase.vdm和mpasdlta.vdm,然后再合并解包后的结果。
构建
- 源代码用C编写;
- 使用MSVS 2022/2026构建,需要安装Windows SDK 19041或更高版本;
- 也可以使用较早版本的MSVS和SDK构建。
相关参考和工具
注意
本仓库不包含也不将包含任何实际转储/提取/解包的二进制数据。
第三方代码使用
使用ZLIB数据压缩库(https://github.com/madler/zlib)
作者
(c) 2019 - 2026 WDEXTRACT项目