From 5e182c156ca5ff0c63a036d884c8fa70443533a7 Mon Sep 17 00:00:00 2001 From: Erik Schamper <1254028+Schamper@users.noreply.github.com> Date: Wed, 17 Jan 2024 09:57:17 +0100 Subject: [PATCH] Remove WIM code in favor of dissect.archive (#26) --- dissect/hypervisor/__init__.py | 3 +- dissect/hypervisor/backup/c_wim.py | 62 ------------------------------ dissect/hypervisor/backup/wim.py | 11 ------ 3 files changed, 1 insertion(+), 75 deletions(-) delete mode 100644 dissect/hypervisor/backup/c_wim.py delete mode 100644 dissect/hypervisor/backup/wim.py diff --git a/dissect/hypervisor/__init__.py b/dissect/hypervisor/__init__.py index 0da1051..6716621 100644 --- a/dissect/hypervisor/__init__.py +++ b/dissect/hypervisor/__init__.py @@ -1,4 +1,4 @@ -from dissect.hypervisor.backup import vma, wim, xva +from dissect.hypervisor.backup import vma, xva from dissect.hypervisor.descriptor import hyperv, ovf, pvs, vbox, vmx from dissect.hypervisor.disk import hdd, qcow2, vdi, vhd, vhdx, vmdk from dissect.hypervisor.util import envelope, vmtar @@ -18,6 +18,5 @@ "vmdk", "vmtar", "vmx", - "wim", "xva", ] diff --git a/dissect/hypervisor/backup/c_wim.py b/dissect/hypervisor/backup/c_wim.py deleted file mode 100644 index c810201..0000000 --- a/dissect/hypervisor/backup/c_wim.py +++ /dev/null @@ -1,62 +0,0 @@ -from dissect import cstruct - -wim_def = """ -typedef char[16] GUID; -typedef uint64 LARGE_INTEGER; - -#define FLAG_HEADER_RESERVED 0x00000001 -#define FLAG_HEADER_COMPRESSION 0x00000002 -#define FLAG_HEADER_READONLY 0x00000004 -#define FLAG_HEADER_SPANNED 0x00000008 -#define FLAG_HEADER_RESOURCE_ONLY 0x00000010 -#define FLAG_HEADER_METADATA_ONLY 0x00000020 -#define FLAG_HEADER_WRITE_IN_PROGRESS 0x00000040 -#define FLAG_HEADER_RP_FIX 0x00000080 // reparse point fixup -#define FLAG_HEADER_COMPRESS_RESERVED 0x00010000 -#define FLAG_HEADER_COMPRESS_XPRESS 0x00020000 -#define FLAG_HEADER_COMPRESS_LZX 0x00040000 - -typedef struct _RESHDR_BASE_DISK -{ - union - { - ULONGLONG ullSize; - struct - { - BYTE sizebytes[7]; - BYTE bFlags; - }; - }; - LARGE_INTEGER liOffset; -} RESHDR_BASE_DISK; - -typedef struct _RESHDR_DISK_SHORT -{ - RESHDR_BASE_DISK Base; // Must be first. - LARGE_INTEGER liOriginalSize; -} RESHDR_DISK_SHORT; - -typedef struct _WIMHEADER_V1_PACKED -{ - CHAR ImageTag[8]; // "MSWIM\0\0" - DWORD cbSize; - DWORD dwVersion; - DWORD dwFlags; - DWORD dwCompressionSize; - GUID gWIMGuid; - USHORT usPartNumber; - USHORT usTotalParts; - DWORD dwImageCount; - RESHDR_DISK_SHORT rhOffsetTable; - RESHDR_DISK_SHORT rhXmlData; - RESHDR_DISK_SHORT rhBootMetadata; - DWORD dwBootIndex; - RESHDR_DISK_SHORT rhIntegrity; - BYTE bUnused[60]; -} WIMHEADER_V1_PACKED; -""" - -c_wim = cstruct.cstruct() -c_wim.load(wim_def) - -WIM_IMAGE_TAG = b"MSWIM\x00\x00\x00" diff --git a/dissect/hypervisor/backup/wim.py b/dissect/hypervisor/backup/wim.py deleted file mode 100644 index ee2a3b9..0000000 --- a/dissect/hypervisor/backup/wim.py +++ /dev/null @@ -1,11 +0,0 @@ -from dissect.hypervisor.backup.c_wim import WIM_IMAGE_TAG, c_wim -from dissect.hypervisor.exceptions import InvalidHeaderError - - -class WIM: - def __init__(self, fh): - self.fh = fh - self.header = c_wim.WIMHEADER_V1_PACKED(fh) - - if self.header.ImageTag != WIM_IMAGE_TAG: - raise InvalidHeaderError("Expected MSWIM header, got: {!r}".format(self.header.ImageTag))