
Извлечение базы данных Защитника Windows из vdm-файлов и распаковка
- Эта программа распространяется как есть, без каких-либо гарантий;
- Официальной поддержки нет; если вам нравится этот инструмент, не стесняйтесь участвовать.
Возможности
- Распаковка VDM-контейнеров Защитника Windows/Microsoft Security Essentials;
- Расшифровка VDM-контейнера, встроенного в средство удаления вредоносных программ (MRT.exe);
- Извлечение сырых RMDX-контейнеров без распаковки (ключ -ec);
- Слияние базового VDM-файла с дельта-файлом (ключ -m);
- Извлечение всех PE-образов из распакованных/расшифрованных/слитых контейнеров на лету (ключ -e):
- дамп VDLL (виртуальных DLL);
- дамп содержимого VFS (виртуальной файловой системы);
- дамп вспомогательных образов подписей;
- дамп образов GAPA (анализатора протоколов прикладного уровня), используемых NIS (системой сетевой инспекции);
- код может быть адаптирован для дампа специфичных для типа фрагментов базы данных (не реализовано);
- Быстрее любого скрипта.
List of MRT extracted images, (version 5.71.15840.1)
https://gist.githubusercontent.com/hfiref0x/e4b97fb7135c9a6f9f0787c07da0a99d/raw/d91e77f71aa96bdb98d121b1d915dc697ce85e2a/gistfile1.txt
List of WD extracted images, mpasbase.vdm (version 1.291.0.0)
https://gist.githubusercontent.com/hfiref0x/38e7845304d10c284220461c86491bdf/raw/39c999e59ff2a924932fe6db811555161596b4a7/gistfile1.txt
List of NIS signatures from NisBase.vdm (version 119.0.0.0)
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 - имя файла дельта-файла для слияния с базовым файлом;
- -e необязательный параметр, извлекает все найденные фрагменты PE-образов из контейнера после распаковки/расшифровки/слияния;
- -ec извлечение сырого RMDX-контейнера без дальнейшей обработки (несовместимо с ключами -e и -m);
- -m слияние базового VDM-файла с дельта-файлом;
- -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. Фрагменты образов будут выгружены в создаваемый каталог "chunks" в текущем каталоге wdextract (например, если wdextract запущен из c:\wdbase, это будет каталог c:\wdbase\chunks). Выходные файлы всегда перезаписывают существующие.
- При использовании команды слияния (-m) убедитесь, что вы объединяете файлы, предварительно распакованные/расшифрованные WDExtract. Например, если вы хотите объединить дельту для mpasbase.vdm, которая является mpasdlta.vdm, то вам нужно распаковать mpasbase.vdm и mpasdlta.vdm и только затем объединить распакованные результаты.
Сборка
- Исходный код написан на C;
- Собирается с помощью MSVS 2022/2026 с установленным Windows SDK 19041 и выше;
- Может быть собран с предыдущими версиями MSVS и SDK.
Связанные ссылки и инструменты
N.B.
Никакие фактические сброшенные/извлечённые/распакованные двоичные данные не включены и не будут включены в этот репозиторий.
Использование стороннего кода
Использует библиотеку сжатия данных ZLIB (https://github.com/madler/zlib)
Авторы
(c) 2019 - 2026 Проект WDEXTRACT