
vdmファイルからWindows Defenderデータベースを抽出し、展開する
- このプログラムは現状のまま配布され、いかなる保証もありません。
- 公式サポートはありません。このツールが気に入ったら、自由に貢献してください。
機能
- Windows Defender/Microsoft Security EssentialsのVDMコンテナを展開します。
- Malicious Software Removal Tool (MRT.exe) に埋め込まれたVDMコンテナを復号します。
- 展開せずに生のRMDXコンテナを抽出します(-ecスイッチ)。
- ベースVDMファイルとデルタファイルをマージします(-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
NISシグネチャのリスト、NisBase.vdm(バージョン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として保存されます。イメージチャンクは、wdextractカレントディレクトリに作成された"chunks"ディレクトリにダンプされます(例:wdextractがc:\wdbaseから実行された場合、c:\wdbase\chunksディレクトリになります)。出力ファイルは常に既存のファイルを上書きします。
- マージコマンド(-m)を使用する場合、WDExtractによって事前に展開/復号されたファイルをマージしていることを確認してください。例えば、mpasbase.vdmのデルタがmpasdlta.vdmである場合、mpasbase.vdmとmpasdlta.vdmを展開した後にのみ、展開結果をマージする必要があります。
ビルド
- ソースコードはCで記述されています。
- Windows SDK 19041以降がインストールされたMSVS 2022/2026でビルドされています。
- 以前のバージョンのMSVSおよびSDKでもビルドできます。
関連リファレンスとツール
注意
このリポジトリには、ダンプ/抽出/展開された実際のバイナリデータは含まれておらず、今後も含まれることはありません。
サードパーティコードの使用
ZLIBデータ圧縮ライブラリを使用しています(https://github.com/madler/zlib)
著者
(c) 2019 - 2026 WDEXTRACT プロジェクト