dissect.volume 3.10.dev4__tar.gz → 3.11.dev1__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.volume-3.10.dev4 → dissect_volume-3.11.dev1}/PKG-INFO +6 -3
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/ddf/c_ddf.py +3 -4
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/ddf/ddf.py +7 -2
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/partition.py +2 -2
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/schemes/apm.py +2 -4
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/schemes/bsd.py +2 -3
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/schemes/gpt.py +2 -3
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/schemes/mbr.py +3 -4
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/dm/c_dm.py +1 -2
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/ldm.py +2 -3
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/lvm/c_lvm2.py +1 -2
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/lvm/physical.py +5 -2
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/md/c_md.py +1 -2
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/vss.py +2 -3
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect.volume.egg-info/PKG-INFO +6 -3
- dissect_volume-3.11.dev1/dissect.volume.egg-info/requires.txt +6 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/pyproject.toml +8 -2
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tox.ini +1 -0
- dissect.volume-3.10.dev4/dissect.volume.egg-info/requires.txt +0 -2
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/.gitattributes +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/COPYRIGHT +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/LICENSE +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/MANIFEST.in +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/README.md +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/ddf/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/disk.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/schemes/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/dm/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/dm/btree.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/dm/thin.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/exceptions.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/lvm/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/lvm/lvm2.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/lvm/metadata.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/md/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/md/md.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/raid/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/raid/raid.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/raid/stream.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect.volume.egg-info/SOURCES.txt +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect.volume.egg-info/dependency_links.txt +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect.volume.egg-info/top_level.txt +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/setup.cfg +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/__init__.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/conftest.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/apm.bin +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/bsd.bin +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/bsd64.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid0-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid0-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid0-3.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid0-raid1-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid0-raid1-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid1-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid1-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid10-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid10-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid10-3.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid10-4.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid4-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid4-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid5-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid5-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid5-3.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid6-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid6-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid6-3.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid6-4.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/dm/dm-thin-data.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/dm/dm-thin-metadata.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/gpt.bin +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/gpt_4k.bin +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/gpt_esxi.bin +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/gpt_hybrid.bin +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/gpt_no_name_xff.bin +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/lvm-mirror-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/lvm-mirror-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/lvm-thin.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/lvm.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/mbr.bin +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-90-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-90-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-90-raid1-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-90-raid1-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-linear-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-linear-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid0-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid0-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid0-3.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid1-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid1-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid10-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid10-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid4-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid4-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid4-3.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid5-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid5-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid5-3.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid6-1.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid6-2.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid6-3.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/md/md-raid6-4.bin.gz +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/docs/Makefile +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/docs/conf.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/docs/index.rst +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/test_apm.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/test_bsd.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/test_ddf.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/test_dm.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/test_gpt.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/test_lvm.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/test_mbr.py +0 -0
- {dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/test_md.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dissect.volume
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.11.dev1
|
|
4
4
|
Summary: A Dissect module implementing a parser for different disk volume and partition systems, for example LVM2, GPT and MBR
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License: Affero General Public License v3
|
|
@@ -22,8 +22,11 @@ Requires-Python: ~=3.9
|
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
License-File: COPYRIGHT
|
|
25
|
-
Requires-Dist: dissect.cstruct<4.
|
|
26
|
-
Requires-Dist: dissect.util<4
|
|
25
|
+
Requires-Dist: dissect.cstruct<5,>=4.dev
|
|
26
|
+
Requires-Dist: dissect.util<4,>3
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: dissect.cstruct<5.0.dev,>=4.0.dev; extra == "dev"
|
|
29
|
+
Requires-Dist: dissect.util<4.0.dev,>=3.0.dev; extra == "dev"
|
|
27
30
|
|
|
28
31
|
# dissect.volume
|
|
29
32
|
|
|
@@ -141,12 +141,12 @@ struct Physical_Disk_Records {
|
|
|
141
141
|
struct Virtual_Disk_Entry {
|
|
142
142
|
char VD_GUID[24];
|
|
143
143
|
uint16 VD_Number;
|
|
144
|
-
char
|
|
144
|
+
char Reserved1[2];
|
|
145
145
|
uint32 VD_Type;
|
|
146
146
|
uint8 VD_State;
|
|
147
147
|
uint8 Init_State;
|
|
148
148
|
uint8 Partially_Optimal_Drive_Failures_Remaining; /* DDF 2.0 */
|
|
149
|
-
char
|
|
149
|
+
char Reserved2[13];
|
|
150
150
|
char VD_Name[16];
|
|
151
151
|
};
|
|
152
152
|
|
|
@@ -322,7 +322,6 @@ struct Vendor_Specific_Log {
|
|
|
322
322
|
char Reserved[16];
|
|
323
323
|
};
|
|
324
324
|
"""
|
|
325
|
-
c_ddf = cstruct(endian=">")
|
|
326
|
-
c_ddf.load(ddf_def)
|
|
325
|
+
c_ddf = cstruct(endian=">").load(ddf_def)
|
|
327
326
|
|
|
328
327
|
DEFAULT_SECTOR_SIZE = 512
|
|
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
|
3
3
|
import io
|
|
4
4
|
from typing import BinaryIO, Union
|
|
5
5
|
|
|
6
|
-
from dissect.cstruct.types import Instance, Structure
|
|
7
6
|
from dissect.util import ts
|
|
8
7
|
|
|
9
8
|
from dissect.volume.ddf.c_ddf import DEFAULT_SECTOR_SIZE, c_ddf
|
|
@@ -251,7 +250,13 @@ class VirtualDiskConfigurationRecord:
|
|
|
251
250
|
return f"<VirtualDiskConfigurationRecord guid={self.guid}>"
|
|
252
251
|
|
|
253
252
|
|
|
254
|
-
def _read_section_header(
|
|
253
|
+
def _read_section_header(
|
|
254
|
+
fh: BinaryIO,
|
|
255
|
+
structure: type[
|
|
256
|
+
c_ddf.Physical_Disk_Records | c_ddf.Virtual_Disk_Records | c_ddf.Controller_Data | c_ddf.Physical_Disk_Data
|
|
257
|
+
],
|
|
258
|
+
signature: int,
|
|
259
|
+
) -> c_ddf.Physical_Disk_Records | c_ddf.Virtual_Disk_Records | c_ddf.Controller_Data | c_ddf.Physical_Disk_Data:
|
|
255
260
|
obj = structure(fh)
|
|
256
261
|
if obj.Signature != signature:
|
|
257
262
|
raise DDFError(f"Invalid {structure.name} header. Signature: {obj.Signature:#010x}, expected {signature:#x}")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import Any, BinaryIO, Optional, Union
|
|
2
2
|
from uuid import UUID
|
|
3
3
|
|
|
4
|
-
from dissect.cstruct import
|
|
4
|
+
from dissect.cstruct import Structure
|
|
5
5
|
from dissect.util.stream import RangeStream
|
|
6
6
|
|
|
7
7
|
PARTITION_TYPES = {
|
|
@@ -185,7 +185,7 @@ class Partition:
|
|
|
185
185
|
flags: Optional[int] = None,
|
|
186
186
|
guid: Optional[UUID] = None,
|
|
187
187
|
vtype_str: Optional[str] = None,
|
|
188
|
-
raw:
|
|
188
|
+
raw: Structure = None,
|
|
189
189
|
):
|
|
190
190
|
self.disk = disk
|
|
191
191
|
self.number = number
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import BinaryIO, Iterator
|
|
2
2
|
|
|
3
|
-
from dissect import cstruct
|
|
3
|
+
from dissect.cstruct import cstruct
|
|
4
4
|
|
|
5
5
|
from dissect.volume.disk.partition import Partition
|
|
6
6
|
from dissect.volume.exceptions import DiskError
|
|
@@ -29,9 +29,7 @@ struct partition_entry {
|
|
|
29
29
|
};
|
|
30
30
|
"""
|
|
31
31
|
|
|
32
|
-
c_apm = cstruct.
|
|
33
|
-
c_apm.load(apm_def)
|
|
34
|
-
c_apm.endian = ">"
|
|
32
|
+
c_apm = cstruct(endian=">").load(apm_def)
|
|
35
33
|
|
|
36
34
|
|
|
37
35
|
class APM:
|
|
@@ -5,7 +5,7 @@ import io
|
|
|
5
5
|
from typing import BinaryIO, Iterator
|
|
6
6
|
from uuid import UUID
|
|
7
7
|
|
|
8
|
-
from dissect import cstruct
|
|
8
|
+
from dissect.cstruct import cstruct
|
|
9
9
|
|
|
10
10
|
from dissect.volume.disk.partition import Partition
|
|
11
11
|
from dissect.volume.exceptions import DiskError
|
|
@@ -215,8 +215,7 @@ struct disklabel64 {
|
|
|
215
215
|
#define D_CHAIN 0x10 /* can do back-back transfers */
|
|
216
216
|
"""
|
|
217
217
|
|
|
218
|
-
c_bsd = cstruct.
|
|
219
|
-
c_bsd.load(bsd_def)
|
|
218
|
+
c_bsd = cstruct().load(bsd_def)
|
|
220
219
|
|
|
221
220
|
DTYPE_NAMES = {
|
|
222
221
|
0: "unknown",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import BinaryIO, Iterator
|
|
2
2
|
|
|
3
|
-
from dissect import cstruct
|
|
3
|
+
from dissect.cstruct import cstruct
|
|
4
4
|
|
|
5
5
|
from dissect.volume.disk.partition import Partition
|
|
6
6
|
from dissect.volume.disk.schemes.mbr import MBR
|
|
@@ -43,8 +43,7 @@ struct GPT_PARTITION {
|
|
|
43
43
|
// 56 (0x38) 72 bytes Partition name (36 UTF-16LE code units)
|
|
44
44
|
"""
|
|
45
45
|
|
|
46
|
-
c_gpt = cstruct.
|
|
47
|
-
c_gpt.load(gpt_def)
|
|
46
|
+
c_gpt = cstruct().load(gpt_def)
|
|
48
47
|
|
|
49
48
|
|
|
50
49
|
class GPT:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import BinaryIO, Iterator, Optional
|
|
2
2
|
|
|
3
|
-
from dissect.cstruct import
|
|
3
|
+
from dissect.cstruct import cstruct
|
|
4
4
|
|
|
5
5
|
from dissect.volume.disk.partition import Partition
|
|
6
6
|
from dissect.volume.exceptions import DiskError
|
|
@@ -26,8 +26,7 @@ typedef struct mbr_s {
|
|
|
26
26
|
} mbr;
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
-
c_mbr = cstruct()
|
|
30
|
-
c_mbr.load(mbr_def)
|
|
29
|
+
c_mbr = cstruct().load(mbr_def)
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|
class MBR:
|
|
@@ -53,7 +52,7 @@ class MBR:
|
|
|
53
52
|
self.partitions: list[Partition] = list(self._partitions(self.mbr, self.offset))
|
|
54
53
|
|
|
55
54
|
def _partitions(
|
|
56
|
-
self, mbr:
|
|
55
|
+
self, mbr: c_mbr.mbr_s, offset: int, num_start: int = 0, ebr_offset: Optional[int] = None
|
|
57
56
|
) -> Iterator[Partition]:
|
|
58
57
|
for num, partition in enumerate(mbr.part):
|
|
59
58
|
if partition.type == 0x00:
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import logging
|
|
6
6
|
import os
|
|
7
7
|
|
|
8
|
-
from dissect import cstruct
|
|
8
|
+
from dissect.cstruct import cstruct
|
|
9
9
|
|
|
10
10
|
log = logging.getLogger(__name__)
|
|
11
11
|
log.setLevel(os.getenv("DISSECT_LOG_LDM", "CRITICAL"))
|
|
@@ -246,5 +246,4 @@ struct KLOG {
|
|
|
246
246
|
};
|
|
247
247
|
"""
|
|
248
248
|
|
|
249
|
-
c_ldm = cstruct
|
|
250
|
-
c_ldm.load(ldm_def)
|
|
249
|
+
c_ldm = cstruct(endian=">").load(ldm_def)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import ast
|
|
2
4
|
import re
|
|
3
5
|
from bisect import bisect_right
|
|
4
6
|
from functools import cached_property
|
|
5
7
|
from typing import Any, BinaryIO, Iterator, Optional
|
|
6
8
|
|
|
7
|
-
from dissect.cstruct import Instance, Structure
|
|
8
9
|
from dissect.util.stream import RunlistStream
|
|
9
10
|
|
|
10
11
|
from dissect.volume.exceptions import LVM2Error
|
|
@@ -92,7 +93,9 @@ class LVM2Device:
|
|
|
92
93
|
return RunlistStream(self.fh, runlist, self.size, SECTOR_SIZE)
|
|
93
94
|
|
|
94
95
|
|
|
95
|
-
def _read_descriptors(
|
|
96
|
+
def _read_descriptors(
|
|
97
|
+
fh: BinaryIO, ctype: type[c_lvm.disk_locn | c_lvm.raw_locn]
|
|
98
|
+
) -> list[c_lvm.disk_locn | c_lvm.raw_locn]:
|
|
96
99
|
descriptors = []
|
|
97
100
|
while True:
|
|
98
101
|
desc = ctype(fh)
|
|
@@ -5,7 +5,7 @@ import os
|
|
|
5
5
|
import uuid
|
|
6
6
|
from collections import defaultdict
|
|
7
7
|
|
|
8
|
-
from dissect import cstruct
|
|
8
|
+
from dissect.cstruct import cstruct
|
|
9
9
|
from dissect.util.stream import AlignedStream
|
|
10
10
|
|
|
11
11
|
from dissect.volume.exceptions import Error
|
|
@@ -144,8 +144,7 @@ struct range_descriptor {
|
|
|
144
144
|
};
|
|
145
145
|
"""
|
|
146
146
|
|
|
147
|
-
c_vss = cstruct.
|
|
148
|
-
c_vss.load(vss_def)
|
|
147
|
+
c_vss = cstruct().load(vss_def)
|
|
149
148
|
|
|
150
149
|
RECORD_TYPE = c_vss.RECORD_TYPE
|
|
151
150
|
BLOCK_FLAG = c_vss.BLOCK_FLAG
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dissect.volume
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.11.dev1
|
|
4
4
|
Summary: A Dissect module implementing a parser for different disk volume and partition systems, for example LVM2, GPT and MBR
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License: Affero General Public License v3
|
|
@@ -22,8 +22,11 @@ Requires-Python: ~=3.9
|
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
License-File: COPYRIGHT
|
|
25
|
-
Requires-Dist: dissect.cstruct<4.
|
|
26
|
-
Requires-Dist: dissect.util<4
|
|
25
|
+
Requires-Dist: dissect.cstruct<5,>=4.dev
|
|
26
|
+
Requires-Dist: dissect.util<4,>3
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: dissect.cstruct<5.0.dev,>=4.0.dev; extra == "dev"
|
|
29
|
+
Requires-Dist: dissect.util<4.0.dev,>=3.0.dev; extra == "dev"
|
|
27
30
|
|
|
28
31
|
# dissect.volume
|
|
29
32
|
|
|
@@ -25,8 +25,8 @@ classifiers = [
|
|
|
25
25
|
"Topic :: Utilities",
|
|
26
26
|
]
|
|
27
27
|
dependencies = [
|
|
28
|
-
"dissect.cstruct>=
|
|
29
|
-
"dissect.util
|
|
28
|
+
"dissect.cstruct>=4.dev,<5",
|
|
29
|
+
"dissect.util>3,<4",
|
|
30
30
|
]
|
|
31
31
|
dynamic = ["version"]
|
|
32
32
|
|
|
@@ -35,6 +35,12 @@ homepage = "https://dissect.tools"
|
|
|
35
35
|
documentation = "https://docs.dissect.tools/en/latest/projects/dissect.volume"
|
|
36
36
|
repository = "https://github.com/fox-it/dissect.volume"
|
|
37
37
|
|
|
38
|
+
[project.optional-dependencies]
|
|
39
|
+
dev = [
|
|
40
|
+
"dissect.cstruct>=4.0.dev,<5.0.dev",
|
|
41
|
+
"dissect.util>=3.0.dev,<4.0.dev",
|
|
42
|
+
]
|
|
43
|
+
|
|
38
44
|
[tool.black]
|
|
39
45
|
line-length = 120
|
|
40
46
|
|
|
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.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect/volume/disk/schemes/__init__.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
|
{dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/dissect.volume.egg-info/dependency_links.txt
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
|
{dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid0-raid1-1.bin.gz
RENAMED
|
File without changes
|
{dissect.volume-3.10.dev4 → dissect_volume-3.11.dev1}/tests/data/ddf/ddf-raid0-raid1-2.bin.gz
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
|
|
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
|
|
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
|
|
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
|