dissect.hypervisor 3.22.dev3__tar.gz → 3.22.dev4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/PKG-INFO +1 -1
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/util/vmtar.py +21 -6
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect.hypervisor.egg-info/PKG-INFO +1 -1
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/util/test_vmtar.py +1 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/.git-blame-ignore-revs +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/COPYRIGHT +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/LICENSE +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/MANIFEST.in +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/README.md +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/c_hyperv.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/hyperv.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/ovf.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/pvs.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/vbox.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/vmx.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/asif.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_asif.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_asif.pyi +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_hdd.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_qcow2.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_qcow2.pyi +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vdi.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vdi.pyi +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vhd.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vhdx.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vmdk.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/hdd.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/qcow2.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/vdi.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/vhd.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/vhdx.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/vmdk.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/exceptions.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/tools/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/tools/envelope.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/tools/vmtar.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/util/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/util/envelope.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect.hypervisor.egg-info/SOURCES.txt +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect.hypervisor.egg-info/dependency_links.txt +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect.hypervisor.egg-info/entry_points.txt +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect.hypervisor.egg-info/requires.txt +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect.hypervisor.egg-info/top_level.txt +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/pyproject.toml +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/setup.cfg +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/_docs/Makefile +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/_docs/conf.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/_docs/index.rst +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/_tools/disk/vdi/generate.sh +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/_util.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/descriptor/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/descriptor/test_hyperv.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/descriptor/test_ovf.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/descriptor/test_pvs.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/descriptor/test_vbox.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/descriptor/test_vmx.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/disk/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/disk/test_asif.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/disk/test_hdd.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/disk/test_qcow2.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/disk/test_vdi.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/disk/test_vhd.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/disk/test_vhdx.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/disk/test_vmdk.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/util/__init__.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/util/test_envelope.py +0 -0
- {dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dissect.hypervisor
|
|
3
|
-
Version: 3.22.
|
|
3
|
+
Version: 3.22.dev4
|
|
4
4
|
Summary: A Dissect module implementing parsers for various hypervisor disk, backup and configuration files
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/util/vmtar.py
RENAMED
|
@@ -22,9 +22,8 @@ class VisorTarInfo(tarfile.TarInfo):
|
|
|
22
22
|
fixUpPgs: int | None
|
|
23
23
|
|
|
24
24
|
@classmethod
|
|
25
|
-
def
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
def _init_visor_attrs(cls, obj: VisorTarInfo, buf: bytes) -> None:
|
|
26
|
+
"""Initialize visor-specific attributes from the raw header buffer."""
|
|
28
27
|
obj.is_visor = buf[257:264] == b"visor "
|
|
29
28
|
if obj.is_visor:
|
|
30
29
|
obj.offset_data = struct.unpack("<I", buf[496:500])[0]
|
|
@@ -35,6 +34,19 @@ class VisorTarInfo(tarfile.TarInfo):
|
|
|
35
34
|
obj.textPgs = None
|
|
36
35
|
obj.fixUpPgs = None
|
|
37
36
|
|
|
37
|
+
@classmethod
|
|
38
|
+
def frombuf(cls, buf: bytes, encoding: str, errors: str) -> VisorTarInfo:
|
|
39
|
+
obj = super().frombuf(buf, encoding, errors)
|
|
40
|
+
cls._init_visor_attrs(obj, buf)
|
|
41
|
+
return obj
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def _frombuf(cls, buf: bytes, encoding: str, errors: str, **kwargs) -> VisorTarInfo:
|
|
45
|
+
# Python 3.13.13+ refactored tarfile to call _frombuf directly instead of
|
|
46
|
+
# frombuf in fromtarfile and _proc_gnulong/_proc_pax. We must override _frombuf
|
|
47
|
+
# to ensure visor-specific attributes are initialized for all code paths.
|
|
48
|
+
obj = super()._frombuf(buf, encoding, errors, **kwargs)
|
|
49
|
+
cls._init_visor_attrs(obj, buf)
|
|
38
50
|
return obj
|
|
39
51
|
|
|
40
52
|
def _proc_member(self, tarfile: tarfile.TarFile) -> VisorTarInfo | tarfile.TarInfo:
|
|
@@ -76,6 +88,8 @@ class VisorTarFile(tarfile.TarFile):
|
|
|
76
88
|
try:
|
|
77
89
|
t = cls.taropen(name, mode, fileobj, **kwargs)
|
|
78
90
|
except Exception:
|
|
91
|
+
if fileobj is not None:
|
|
92
|
+
fileobj.seek(0)
|
|
79
93
|
try:
|
|
80
94
|
fileobj = GzipFile(name, mode + "b", fileobj=fileobj)
|
|
81
95
|
except OSError as e:
|
|
@@ -103,10 +117,11 @@ class VisorTarFile(tarfile.TarFile):
|
|
|
103
117
|
compressed = True
|
|
104
118
|
|
|
105
119
|
# If we get here, we have a valid visor tar file
|
|
106
|
-
if fileobj is not None
|
|
107
|
-
# Just read the entire file into memory, it's probably small
|
|
120
|
+
if fileobj is not None:
|
|
108
121
|
fileobj.seek(0)
|
|
109
|
-
|
|
122
|
+
if compressed:
|
|
123
|
+
# Read the decompressed data into a BytesIO to make random reads faster
|
|
124
|
+
fileobj = BytesIO(fileobj.read())
|
|
110
125
|
|
|
111
126
|
t = cls.taropen(name, mode, fileobj, **kwargs)
|
|
112
127
|
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect.hypervisor.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dissect.hypervisor
|
|
3
|
-
Version: 3.22.
|
|
3
|
+
Version: 3.22.dev4
|
|
4
4
|
Summary: A Dissect module implementing parsers for various hypervisor disk, backup and configuration files
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/ovf.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/pvs.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/vbox.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/descriptor/vmx.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/__init__.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/asif.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_asif.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_asif.pyi
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_hdd.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_qcow2.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_qcow2.pyi
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vdi.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vdi.pyi
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vhd.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vhdx.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/c_vmdk.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/hdd.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/qcow2.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/vdi.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/vhd.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/vhdx.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/disk/vmdk.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/exceptions.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/tools/__init__.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/tools/envelope.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/tools/vmtar.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/util/__init__.py
RENAMED
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/dissect/hypervisor/util/envelope.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/_tools/disk/vdi/generate.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_hypervisor-3.22.dev3 → dissect_hypervisor-3.22.dev4}/tests/descriptor/test_hyperv.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|