dissect.target 3.20.dev50__py3-none-any.whl → 3.20.dev51__py3-none-any.whl

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.
@@ -239,7 +239,7 @@ def open(item: Union[list, str, BinaryIO, Path], *args, **kwargs):
239
239
  log.info("Failed to import %s", container)
240
240
  log.debug("", exc_info=e)
241
241
  except Exception as e:
242
- raise ContainerError(f"Failed to open container {item}", cause=e)
242
+ raise ContainerError(f"Failed to open container {item}") from e
243
243
  finally:
244
244
  if first_fh_opened:
245
245
  first_fh.close()
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import os
2
4
  import sys
3
5
  import traceback
@@ -7,13 +9,12 @@ from typing import Callable
7
9
  class Error(Exception):
8
10
  """Generic dissect.target error"""
9
11
 
10
- def __init__(self, message=None, cause=None, extra=None):
12
+ def __init__(self, message: str | None = None, extra: list[Exception] | None = None):
11
13
  if extra:
12
14
  exceptions = "\n\n".join(["".join(traceback.format_exception_only(type(e), e)) for e in extra])
13
15
  message = f"{message}\n\nAdditionally, the following exceptions occurred:\n\n{exceptions}"
14
16
 
15
17
  super().__init__(message)
16
- self.__cause__ = cause
17
18
  self.__extra__ = extra
18
19
 
19
20
 
@@ -1142,7 +1142,7 @@ class VirtualFilesystem(Filesystem):
1142
1142
  try:
1143
1143
  return entry.top.get(fsutil.join(*parts[i:], alt_separator=self.alt_separator))
1144
1144
  except FilesystemError as e:
1145
- raise FileNotFoundError(full_path, cause=e)
1145
+ raise FileNotFoundError(full_path) from e
1146
1146
  else:
1147
1147
  raise FileNotFoundError(full_path)
1148
1148
 
@@ -1715,7 +1715,7 @@ def open(fh: BinaryIO, *args, **kwargs) -> Filesystem:
1715
1715
  log.info("Failed to import %s", filesystem)
1716
1716
  log.debug("", exc_info=e)
1717
1717
  except Exception as e:
1718
- raise FilesystemError(f"Failed to open filesystem for {fh}", cause=e)
1718
+ raise FilesystemError(f"Failed to open filesystem for {fh}") from e
1719
1719
  finally:
1720
1720
  fh.seek(offset)
1721
1721
 
@@ -79,13 +79,13 @@ class BtrfsSubvolumeFilesystem(Filesystem):
79
79
  try:
80
80
  return self.subvolume.get(path, node)
81
81
  except btrfs.FileNotFoundError as e:
82
- raise FileNotFoundError(path, cause=e)
82
+ raise FileNotFoundError(path) from e
83
83
  except btrfs.NotADirectoryError as e:
84
- raise NotADirectoryError(path, cause=e)
84
+ raise NotADirectoryError(path) from e
85
85
  except btrfs.NotASymlinkError as e:
86
- raise NotASymlinkError(path, cause=e)
86
+ raise NotASymlinkError(path) from e
87
87
  except btrfs.Error as e:
88
- raise FileNotFoundError(path, cause=e)
88
+ raise FileNotFoundError(path) from e
89
89
 
90
90
 
91
91
  class BtrfsFilesystemEntry(FilesystemEntry):
@@ -33,13 +33,13 @@ class ExtFilesystem(Filesystem):
33
33
  try:
34
34
  return self.extfs.get(path, node)
35
35
  except extfs.FileNotFoundError as e:
36
- raise FileNotFoundError(path, cause=e)
36
+ raise FileNotFoundError(path) from e
37
37
  except extfs.NotADirectoryError as e:
38
- raise NotADirectoryError(path, cause=e)
38
+ raise NotADirectoryError(path) from e
39
39
  except extfs.NotASymlinkError as e:
40
- raise NotASymlinkError(path, cause=e)
40
+ raise NotASymlinkError(path) from e
41
41
  except extfs.Error as e:
42
- raise FileNotFoundError(path, cause=e)
42
+ raise FileNotFoundError(path) from e
43
43
 
44
44
 
45
45
  class ExtFilesystemEntry(FilesystemEntry):
@@ -41,11 +41,11 @@ class FatFilesystem(Filesystem):
41
41
  try:
42
42
  return self.fatfs.get(path, dirent=entry)
43
43
  except fat_exc.FileNotFoundError as e:
44
- raise FileNotFoundError(path, cause=e)
44
+ raise FileNotFoundError(path) from e
45
45
  except fat_exc.NotADirectoryError as e:
46
- raise NotADirectoryError(path, cause=e)
46
+ raise NotADirectoryError(path) from e
47
47
  except fat_exc.Error as e:
48
- raise FileNotFoundError(path, cause=e)
48
+ raise FileNotFoundError(path) from e
49
49
 
50
50
 
51
51
  class FatFilesystemEntry(FilesystemEntry):
@@ -39,13 +39,13 @@ class FfsFilesystem(Filesystem):
39
39
  try:
40
40
  return self.ffs.get(path, node)
41
41
  except ffs.FileNotFoundError as e:
42
- raise FileNotFoundError(path, cause=e)
42
+ raise FileNotFoundError(path) from e
43
43
  except ffs.NotADirectoryError as e:
44
- raise NotADirectoryError(path, cause=e)
44
+ raise NotADirectoryError(path) from e
45
45
  except ffs.NotASymlinkError as e:
46
- raise NotASymlinkError(path, cause=e)
46
+ raise NotASymlinkError(path) from e
47
47
  except ffs.Error as e:
48
- raise FileNotFoundError(path, cause=e)
48
+ raise FileNotFoundError(path) from e
49
49
 
50
50
 
51
51
  class FfsFilesystemEntry(FilesystemEntry):
@@ -35,13 +35,13 @@ class JFFSFilesystem(Filesystem):
35
35
  try:
36
36
  return self.jffs2.get(path, node)
37
37
  except jffs2.FileNotFoundError as e:
38
- raise FileNotFoundError(path, cause=e)
38
+ raise FileNotFoundError(path) from e
39
39
  except jffs2.NotADirectoryError as e:
40
- raise NotADirectoryError(path, cause=e)
40
+ raise NotADirectoryError(path) from e
41
41
  except jffs2.NotASymlinkError as e:
42
- raise NotASymlinkError(path, cause=e)
42
+ raise NotASymlinkError(path) from e
43
43
  except jffs2.Error as e:
44
- raise FileNotFoundError(path, cause=e)
44
+ raise FileNotFoundError(path) from e
45
45
 
46
46
 
47
47
  class JFFSFilesystemEntry(FilesystemEntry):
@@ -48,12 +48,12 @@ class NtfsFilesystem(Filesystem):
48
48
  try:
49
49
  path = path.rsplit(":", maxsplit=1)[0]
50
50
  return self.ntfs.mft.get(path, root=root)
51
- except NtfsFileNotFoundError:
52
- raise FileNotFoundError(path)
51
+ except NtfsFileNotFoundError as e:
52
+ raise FileNotFoundError(path) from e
53
53
  except NtfsNotADirectoryError as e:
54
- raise NotADirectoryError(path, cause=e)
54
+ raise NotADirectoryError(path) from e
55
55
  except NtfsError as e:
56
- raise FileNotFoundError(path, cause=e)
56
+ raise FileNotFoundError(path) from e
57
57
 
58
58
 
59
59
  class NtfsFilesystemEntry(FilesystemEntry):
@@ -58,10 +58,10 @@ class SmbFilesystem(Filesystem):
58
58
  except SessionError as e:
59
59
  if e.error == STATUS_NOT_A_DIRECTORY:
60
60
  # STATUS_NOT_A_DIRECTORY
61
- raise NotADirectoryError(path, cause=e)
61
+ raise NotADirectoryError(path) from e
62
62
  else:
63
63
  # 0xC000000F is STATUS_NO_SUCH_FILE, but everything else should raise a FileNotFoundError anyway
64
- raise FileNotFoundError(path, cause=e)
64
+ raise FileNotFoundError(path) from e
65
65
 
66
66
  if len(result) != 1:
67
67
  raise FileNotFoundError(path)
@@ -106,7 +106,7 @@ class SmbFilesystemEntry(FilesystemEntry):
106
106
  try:
107
107
  return SmbStream(self.fs.conn, self.fs.share_name, self.path, self.entry.get_filesize())
108
108
  except SessionError as e:
109
- raise FilesystemError(f"Failed to open file: {self.path}", cause=e)
109
+ raise FilesystemError(f"Failed to open file: {self.path}") from e
110
110
 
111
111
  def is_dir(self, follow_symlinks: bool = True) -> bool:
112
112
  try:
@@ -32,13 +32,13 @@ class SquashFSFilesystem(Filesystem):
32
32
  try:
33
33
  return self.squashfs.get(path, node)
34
34
  except exceptions.FileNotFoundError as e:
35
- raise FileNotFoundError(path, cause=e)
35
+ raise FileNotFoundError(path) from e
36
36
  except exceptions.NotADirectoryError as e:
37
- raise NotADirectoryError(path, cause=e)
37
+ raise NotADirectoryError(path) from e
38
38
  except exceptions.NotASymlinkError as e:
39
- raise NotASymlinkError(path, cause=e)
39
+ raise NotASymlinkError(path) from e
40
40
  except exceptions.Error as e:
41
- raise FileNotFoundError(path, cause=e)
41
+ raise FileNotFoundError(path) from e
42
42
 
43
43
 
44
44
  class SquashFSFilesystemEntry(FilesystemEntry):
@@ -41,13 +41,13 @@ class VmfsFilesystem(Filesystem):
41
41
  try:
42
42
  return self.vmfs.get(path, node)
43
43
  except vmfs.FileNotFoundError as e:
44
- raise FileNotFoundError(path, cause=e)
44
+ raise FileNotFoundError(path) from e
45
45
  except vmfs.NotADirectoryError as e:
46
- raise NotADirectoryError(path, cause=e)
46
+ raise NotADirectoryError(path) from e
47
47
  except vmfs.NotASymlinkError as e:
48
- raise NotASymlinkError(path, cause=e)
48
+ raise NotASymlinkError(path) from e
49
49
  except vmfs.Error as e:
50
- raise FileNotFoundError(path, cause=e)
50
+ raise FileNotFoundError(path) from e
51
51
 
52
52
 
53
53
  class VmfsFilesystemEntry(FilesystemEntry):
@@ -35,14 +35,14 @@ class XfsFilesystem(Filesystem):
35
35
  def _get_node(self, path: str, node: Optional[xfs.INode] = None) -> xfs.INode:
36
36
  try:
37
37
  return self.xfs.get(path, node)
38
- except xfs.FileNotFoundError:
39
- raise FileNotFoundError(path)
40
- except xfs.NotADirectoryError:
41
- raise NotADirectoryError(path)
42
- except xfs.NotASymlinkError:
43
- raise NotASymlinkError(path)
38
+ except xfs.FileNotFoundError as e:
39
+ raise FileNotFoundError(path) from e
40
+ except xfs.NotADirectoryError as e:
41
+ raise NotADirectoryError(path) from e
42
+ except xfs.NotASymlinkError as e:
43
+ raise NotASymlinkError(path) from e
44
44
  except xfs.Error as e:
45
- raise FileNotFoundError(path, cause=e)
45
+ raise FileNotFoundError(path) from e
46
46
 
47
47
 
48
48
  class XfsFilesystemEntry(FilesystemEntry):
@@ -1,4 +1,5 @@
1
- """ Registry related abstractions """
1
+ """Registry related abstractions"""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import fnmatch
@@ -645,7 +646,7 @@ class RegfHive(RegistryHive):
645
646
  try:
646
647
  return RegfKey(self, self.hive.open(key))
647
648
  except regf.RegistryKeyNotFoundError as e:
648
- raise RegistryKeyNotFoundError(key, cause=e)
649
+ raise RegistryKeyNotFoundError(key) from e
649
650
 
650
651
 
651
652
  class RegfKey(RegistryKey):
@@ -675,7 +676,7 @@ class RegfKey(RegistryKey):
675
676
  try:
676
677
  return RegfKey(self.hive, self.key.subkey(subkey))
677
678
  except regf.RegistryKeyNotFoundError as e:
678
- raise RegistryKeyNotFoundError(subkey, cause=e)
679
+ raise RegistryKeyNotFoundError(subkey) from e
679
680
 
680
681
  def subkeys(self) -> list[RegistryKey]:
681
682
  return [RegfKey(self.hive, k) for k in self.key.subkeys()]
@@ -684,7 +685,7 @@ class RegfKey(RegistryKey):
684
685
  try:
685
686
  return RegfValue(self.hive, self.key.value(value))
686
687
  except regf.RegistryValueNotFoundError as e:
687
- raise RegistryValueNotFoundError(value, cause=e)
688
+ raise RegistryValueNotFoundError(value) from e
688
689
 
689
690
  def values(self) -> list[RegistryValue]:
690
691
  return [RegfValue(self.hive, v) for v in self.key.values()]
dissect/target/plugin.py CHANGED
@@ -807,7 +807,7 @@ def load(plugin_desc: PluginDescriptor) -> Type[Plugin]:
807
807
  module = importlib.import_module(module)
808
808
  return getattr(module, plugin_desc["class"])
809
809
  except Exception as e:
810
- raise PluginError(f"An exception occurred while trying to load a plugin: {module}", cause=e)
810
+ raise PluginError(f"An exception occurred while trying to load a plugin: {module}") from e
811
811
 
812
812
 
813
813
  def failed() -> list[dict[str, Any]]:
dissect/target/target.py CHANGED
@@ -236,7 +236,7 @@ class Target:
236
236
  try:
237
237
  loader_instance = loader_cls(path, parsed_path=parsed_path)
238
238
  except Exception as e:
239
- raise TargetError(f"Failed to initiate {loader_cls.__name__} for target {path}: {e}", cause=e)
239
+ raise TargetError(f"Failed to initiate {loader_cls.__name__} for target {path}: {e}") from e
240
240
  return cls._load(path, loader_instance)
241
241
  return cls.open_raw(path)
242
242
 
@@ -428,7 +428,7 @@ class Target:
428
428
  target.apply()
429
429
  return target
430
430
  except Exception as e:
431
- raise TargetError(f"Failed to load target: {path}", cause=e)
431
+ raise TargetError(f"Failed to load target: {path}") from e
432
432
 
433
433
  def _init_os(self) -> None:
434
434
  """Internal function that attemps to load an OSPlugin for this target."""
@@ -541,7 +541,7 @@ class Target:
541
541
  except PluginError:
542
542
  raise
543
543
  except Exception as e:
544
- raise PluginError(f"An exception occurred while trying to initialize a plugin: {plugin_cls}", cause=e)
544
+ raise PluginError(f"An exception occurred while trying to initialize a plugin: {plugin_cls}") from e
545
545
  else:
546
546
  p = plugin_cls
547
547
 
@@ -556,8 +556,8 @@ class Target:
556
556
  raise
557
557
  except Exception as e:
558
558
  raise UnsupportedPluginError(
559
- f"An exception occurred while checking for plugin compatibility: {plugin_cls}", cause=e
560
- )
559
+ f"An exception occurred while checking for plugin compatibility: {plugin_cls}"
560
+ ) from e
561
561
 
562
562
  self._register_plugin_functions(p)
563
563
 
@@ -614,9 +614,8 @@ class Target:
614
614
  # Just take the last known cause for now
615
615
  raise UnsupportedPluginError(
616
616
  f"Unsupported function `{function}` for target with OS plugin {self._os_plugin}",
617
- cause=causes[0] if causes else None,
618
617
  extra=causes[1:] if len(causes) > 1 else None,
619
- )
618
+ ) from causes[0] if causes else None
620
619
 
621
620
  # We still ended up with no compatible plugins
622
621
  if function not in self._functions:
@@ -230,15 +230,15 @@ def get_target_attribute(target: Target, func: PluginFunction) -> Union[Plugin,
230
230
  target.add_plugin(plugin_class)
231
231
  except UnsupportedPluginError as e:
232
232
  raise UnsupportedPluginError(
233
- f"Unsupported function `{func.method_name}` for target with plugin {func.class_object}", cause=e
234
- )
233
+ f"Unsupported function `{func.method_name}` for target with plugin {func.class_object}"
234
+ ) from e
235
235
 
236
236
  _, target_attr = plugin_factory(target, plugin_class, func.method_name, func.plugin_desc["namespace"])
237
237
  return target_attr
238
238
 
239
239
 
240
240
  def plugin_function_with_argparser(
241
- target_attr: Union[Plugin, Callable]
241
+ target_attr: Union[Plugin, Callable],
242
242
  ) -> tuple[Optional[Iterator], Optional[argparse.ArgumentParser]]:
243
243
  """Resolves which plugin function to execute, and creates the argument parser for said plugin."""
244
244
  plugin_method = None
dissect/target/volume.py CHANGED
@@ -334,7 +334,7 @@ def open(fh: BinaryIO, *args, **kwargs) -> DissectVolumeSystem:
334
334
  try:
335
335
  return disk.DissectVolumeSystem(fh)
336
336
  except Exception as e:
337
- raise VolumeSystemError(f"Failed to load volume system for {fh}", cause=e)
337
+ raise VolumeSystemError(f"Failed to load volume system for {fh}") from e
338
338
  finally:
339
339
  fh.seek(offset)
340
340
 
@@ -353,7 +353,7 @@ def is_lvm_volume(volume: BinaryIO) -> bool:
353
353
  log.info("Failed to import %s", logical_vs)
354
354
  log.debug("", exc_info=e)
355
355
  except Exception as e:
356
- raise VolumeSystemError(f"Failed to detect logical volume for {volume}", cause=e)
356
+ raise VolumeSystemError(f"Failed to detect logical volume for {volume}") from e
357
357
 
358
358
  return False
359
359
 
@@ -372,7 +372,7 @@ def is_encrypted(volume: BinaryIO) -> bool:
372
372
  log.info("Failed to import %s", manager)
373
373
  log.debug("", exc_info=e)
374
374
  except Exception as e:
375
- raise VolumeSystemError(f"Failed to detect encrypted volume for {volume}", cause=e)
375
+ raise VolumeSystemError(f"Failed to detect encrypted volume for {volume}") from e
376
376
  return False
377
377
 
378
378
 
@@ -422,4 +422,4 @@ def open_lvm(volumes: list[BinaryIO], *args, **kwargs) -> Iterator[VolumeSystem]
422
422
  log.info("Failed to import %s", logical_vs)
423
423
  log.debug("", exc_info=e)
424
424
  except Exception as e:
425
- raise VolumeSystemError(f"Failed to load logical volume system for {volumes}", cause=e)
425
+ raise VolumeSystemError(f"Failed to load logical volume system for {volumes}") from e
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.20.dev50
3
+ Version: 3.20.dev51
4
4
  Summary: This module ties all other Dissect modules together, it provides a programming API and command line tools which allow easy access to various data sources inside disk images or file collections (a.k.a. targets)
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License: Affero General Public License v3
@@ -1,12 +1,12 @@
1
1
  dissect/target/__init__.py,sha256=Oc7ounTgq2hE4nR6YcNabetc7SQA40ldSa35VEdZcQU,63
2
- dissect/target/container.py,sha256=0YcwcGmfJjhPXUB6DEcjWEoSuAtTDxMDpoTviMrLsxM,9353
3
- dissect/target/exceptions.py,sha256=ULi7NXlqju_d8KENEL3aimmfKTFfbNssfeWhAnOB654,2972
4
- dissect/target/filesystem.py,sha256=__p2p72B6mKgIiAOj85EC3ESdZ8gjgkm2pt1KKym3h0,60743
2
+ dissect/target/container.py,sha256=Nd3lolK83UN8LB-7JMcfT7BSvAK6ZSs2vlEcXeW40Ic,9351
3
+ dissect/target/exceptions.py,sha256=kgLE8NMJaICGhDursvEgu-4ywoDp_yhklpdDYliNLqU,3005
4
+ dissect/target/filesystem.py,sha256=_dtBo4RI0VZpngm62rrSWcM9sHwNH-tclz9jByrCRWU,60739
5
5
  dissect/target/loader.py,sha256=ZlCI7ZyPpysuSKndOiRz_rrGb30_jLMdFD6qObY0Vzg,7374
6
- dissect/target/plugin.py,sha256=iUc7OmQJ0wwYJeR7L4VBNJ0AjgYWV69FN0NHgWYaLYI,50682
6
+ dissect/target/plugin.py,sha256=3VeKrJuZ35HsTpHqSFxhYIxrA704HStSrvcDwUh0674,50680
7
7
  dissect/target/report.py,sha256=06uiP4MbNI8cWMVrC1SasNS-Yg6ptjVjckwj8Yhe0Js,7958
8
- dissect/target/target.py,sha256=-UoFO_fqS6XPf77RDHSV4gNRi95wwwpgWq7zIhNVUGk,32719
9
- dissect/target/volume.py,sha256=aQZAJiny8jjwkc9UtwIRwy7nINXjCxwpO-_UDfh6-BA,15801
8
+ dissect/target/target.py,sha256=Gxf6No4IlnOVIMS4XbzFIYj9mx5Is8kIB5aDNR1gb_8,32685
9
+ dissect/target/volume.py,sha256=EaUFX1VdQjDUpdurSWsk3ASJyu8W3xHEwh6iFoyeW8I,15793
10
10
  dissect/target/containers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  dissect/target/containers/asdf.py,sha256=DJp0QEFwUjy2MFwKYcYqIR_BS1fQT1Yi9Kcmqt0aChM,1366
12
12
  dissect/target/containers/ewf.py,sha256=FTEPZpogDzymrbAeSnLuHNNStifLzNVhUvtbEMOyo0E,1342
@@ -23,25 +23,25 @@ dissect/target/containers/vmdk.py,sha256=5fQGkJy4esXONXrKLbhpkQDt8Fwx19YENK2mOm7
23
23
  dissect/target/data/autocompletion/target_bash_completion.sh,sha256=wrOQ_ED-h8WFcjCmY6n4qKl84tWJv9l8ShFHDfJqJyA,3592
24
24
  dissect/target/filesystems/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  dissect/target/filesystems/ad1.py,sha256=nEPzaaRsb6bL4ItFo0uLdmdLvrmK9BjqHeD3FOp3WQI,2413
26
- dissect/target/filesystems/btrfs.py,sha256=TotOs0-VOmgSijERZb1pOrIH_E7B1J_DRKqws8ttQTk,6569
26
+ dissect/target/filesystems/btrfs.py,sha256=GE9wWJ1e04UMxVs4Ycw6Q2YWZJoD3sqEKF7Xta8LSi8,6561
27
27
  dissect/target/filesystems/cb.py,sha256=6LcoJiwsYu1Han31IUzVpZVDTifhTLTx_gLfNpB_p6k,5329
28
28
  dissect/target/filesystems/config.py,sha256=VGrzv456rj4tqRzxp1gSGzkHZ447viiLLLcs5NYPYvg,12057
29
29
  dissect/target/filesystems/cpio.py,sha256=ssVCjkAtLn2FqmNxeo6U5boyUdSYFxLWfXpytHYGPqs,641
30
30
  dissect/target/filesystems/dir.py,sha256=rKEreX3A7CI6a3pMssrO9F-9i5pkxCn_Ucs_dMtHxxA,4574
31
31
  dissect/target/filesystems/exfat.py,sha256=PRkZPUVN5NlgB1VetFtywdNgF6Yj5OBtF5a25t-fFvw,5917
32
- dissect/target/filesystems/extfs.py,sha256=6LkpCqhAfMzDmHklK9fecgmHto-ZnHQOpn7H8Wj3vhk,4835
33
- dissect/target/filesystems/fat.py,sha256=ZSw-wS57vo5eIXJndfI1rZkGu_qh-vyioMzCZFZ_UTE,4611
34
- dissect/target/filesystems/ffs.py,sha256=Y232DH_EAxlvIQwCCeyWhWOuIzF_m-vKbnY4WPTg_s4,4958
32
+ dissect/target/filesystems/extfs.py,sha256=LVdB94lUI2DRHW0xUPx8lwuY-NKVeSwFGZiLOpZ8-Lk,4827
33
+ dissect/target/filesystems/fat.py,sha256=cCIiUAY0-5dL76Zhvji1QbwlMVX7YqKWp-NmUdqz8yA,4605
34
+ dissect/target/filesystems/ffs.py,sha256=ry7aPb_AQeApTuhVQVioQPn4Q795_Ak5XloEtd-0bww,4950
35
35
  dissect/target/filesystems/itunes.py,sha256=w2lcWv6jlBPm84tsGZehxKBMXXyuW3KlmwVTF4ssQec,6395
36
- dissect/target/filesystems/jffs.py,sha256=MZcoHf7h1rpXf0Mf8eMOjp3-tfUHZ9jQzkcaUdeQDyQ,4218
37
- dissect/target/filesystems/ntfs.py,sha256=Losf35q9aLm-YdwVllT5so99s-GqTF1ZXMbLX0PUNC0,7624
36
+ dissect/target/filesystems/jffs.py,sha256=v0fom9zofWNI2umEtKEikxh3kPsbz2rrLOHA3T6Pw1o,4210
37
+ dissect/target/filesystems/ntfs.py,sha256=ADSv_VkX0fir6NYaOJD1ewWo9UG84Q7AEbDwULiEoN4,7632
38
38
  dissect/target/filesystems/overlay.py,sha256=d0BNZcVd3SzBcM1SZO5nX2FrEYcdtVH34BPJQ6Oh4x8,4753
39
- dissect/target/filesystems/smb.py,sha256=uxfcOWwEoDCw8Qpsa94T5Pn-SKd4WXs4OOrzVVI55d8,6406
40
- dissect/target/filesystems/squashfs.py,sha256=ehzlThXB7n96XUvQnsK5tWLsA9HIxYN-Zxl7aO9D7ts,3921
39
+ dissect/target/filesystems/smb.py,sha256=gzPSIB6J3psFZ7RSU30llcJCt04SFSDpQTImxUUQG7Y,6400
40
+ dissect/target/filesystems/squashfs.py,sha256=WfAUh-a4FEbN8n5geFOdb0KkQIgYNGs3CJHCCIkpl6s,3913
41
41
  dissect/target/filesystems/tar.py,sha256=EJyvRCU6H7eu0exC0tQggyAZKZ3JFFaihYyx9SIQNqk,5742
42
- dissect/target/filesystems/vmfs.py,sha256=sRtYBUAKTKcHrjCXqpFJ8GIVU-ERjqxhB2zXBndtcXU,4955
42
+ dissect/target/filesystems/vmfs.py,sha256=39FPJiznzSivV5UI2PWo8uD7IKZV7qw-8qIVK5_UcAg,4947
43
43
  dissect/target/filesystems/vmtar.py,sha256=LlKWkTIuLemQmG9yGqL7980uC_AOL77_GWhbJc_grSk,804
44
- dissect/target/filesystems/xfs.py,sha256=bNYyiAqqTnzKf-Cd-XTbr-3EPWjSlOpjlcyCzO2Toq4,5017
44
+ dissect/target/filesystems/xfs.py,sha256=HsVWbOmq1tn95Q4Jo0QzP2D1A2Cce_bn6WSDkN-GPfc,5051
45
45
  dissect/target/filesystems/zip.py,sha256=BeNj23DOYfWuTm5V1V419ViJiMfBrO1VA5gP6rljwXs,5467
46
46
  dissect/target/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  dissect/target/helpers/cache.py,sha256=TXlJBdFRz6V9zKs903am4Yawr0maYw5kZY0RqklDQJM,8568
@@ -62,7 +62,7 @@ dissect/target/helpers/polypath.py,sha256=h8p7m_OCNiQljGwoZh5Aflr9H2ot6CZr6WKq1O
62
62
  dissect/target/helpers/protobuf.py,sha256=b4DsnqrRLrefcDjx7rQno-_LBcwtJXxuKf5RdOegzfE,1537
63
63
  dissect/target/helpers/record.py,sha256=TxG1lwW5N0V-7kuq4s2vnQh-hAbT7rVwwZLf4sIDNjM,6334
64
64
  dissect/target/helpers/record_modifier.py,sha256=cRNDhUYMmx4iEKyEr5Pqy9xiFgxr_GBNJPp_omkQsEU,4094
65
- dissect/target/helpers/regutil.py,sha256=dnmpceitwTeS-9L8HU_HG5OXMzCcH58o8uhj5olDWyg,28383
65
+ dissect/target/helpers/regutil.py,sha256=hnJRTOQs4IqN4EroBoSNC4HDvuA8w6U1dqNBvu-ILn0,28376
66
66
  dissect/target/helpers/shell_application_ids.py,sha256=hYxrP-YtHK7ZM0ectJFHfoMB8QUXLbYNKmKXMWLZRlA,38132
67
67
  dissect/target/helpers/shell_folder_ids.py,sha256=Behhb8oh0kMxrEk6YYKYigCDZe8Hw5QS6iK_d2hTs2Y,24978
68
68
  dissect/target/helpers/utils.py,sha256=K3xVq9D0FwIhTBAuiWN8ph7Pq2GABgG3hOz-3AmKuEA,4244
@@ -364,7 +364,7 @@ dissect/target/tools/mount.py,sha256=8GRYnu4xEmFBHxuIZAYhOMyyTGX8fat1Ou07DNiUnW4
364
364
  dissect/target/tools/query.py,sha256=OYWVmCx2nFx85x1r8Y6D17UdUIi8PJm304xBfT-H8vs,15605
365
365
  dissect/target/tools/reg.py,sha256=FDsiBBDxjWVUBTRj8xn82vZe-J_d9piM-TKS3PHZCcM,3193
366
366
  dissect/target/tools/shell.py,sha256=qY-JIwFQKBHTbqOiFxeO9OYeOlesQlx0r8PHghSAV8I,54207
367
- dissect/target/tools/utils.py,sha256=JJZDSso1CEK2sv4Z3HJNgqxH6G9S5lbmV-C3h-XmcMo,12035
367
+ dissect/target/tools/utils.py,sha256=WbENqFFrAVO3kU54tRi2bV9mLIZpTYNK8fJkeoU-FQY,12034
368
368
  dissect/target/tools/yara.py,sha256=70k-2VMulf1EdkX03nCACzejaOEcsFHOyX-4E40MdQU,2044
369
369
  dissect/target/tools/dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
370
370
  dissect/target/tools/dump/run.py,sha256=aD84peRS4zHqC78fH7Vd4ni3m1ZmVP70LyMwBRvoDGY,9463
@@ -378,10 +378,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
378
378
  dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
379
379
  dissect/target/volumes/md.py,sha256=7ShPtusuLGaIv27SvEETtgsuoQyAa4iAAeOR1NEaajI,1689
380
380
  dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
381
- dissect.target-3.20.dev50.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
382
- dissect.target-3.20.dev50.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
383
- dissect.target-3.20.dev50.dist-info/METADATA,sha256=GXXc4LbwWhRuEYw8FhQSkRDdbCUApDrAwJQss7yANgY,12897
384
- dissect.target-3.20.dev50.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
385
- dissect.target-3.20.dev50.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
386
- dissect.target-3.20.dev50.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
387
- dissect.target-3.20.dev50.dist-info/RECORD,,
381
+ dissect.target-3.20.dev51.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
382
+ dissect.target-3.20.dev51.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
383
+ dissect.target-3.20.dev51.dist-info/METADATA,sha256=KbglItTMCNNZcuFn2IcpvW-aqdoPr6_SMcldbLRoSTM,12897
384
+ dissect.target-3.20.dev51.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
385
+ dissect.target-3.20.dev51.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
386
+ dissect.target-3.20.dev51.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
387
+ dissect.target-3.20.dev51.dist-info/RECORD,,