dissect.target 3.20.dev1__py3-none-any.whl → 3.20.dev3__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.
@@ -341,9 +341,20 @@ class Broker:
341
341
  self.mqtt_client.subscribe(f"{self.case}/{host}/DISKS")
342
342
  self.mqtt_client.subscribe(f"{self.case}/{host}/READ/#")
343
343
  if self.command is not None:
344
+ self.mqtt_client.subscribe(f"{self.case}/{host}/CALLID")
344
345
  self.mqtt_client.publish(f"{self.case}/{host}/COMM", self.command.encode("utf-8"))
345
346
  time.sleep(1)
346
347
 
348
+ def _on_call_id(self, hostname: str, payload: bytes) -> None:
349
+ try:
350
+ decoded_payload = payload.decode("utf-8")
351
+ except UnicodeDecodeError as e:
352
+ log.error(f"Failed to decode payload for hostname {hostname}: {e}")
353
+ return
354
+
355
+ # The payload with the username and password is comma separated
356
+ print(f'"{hostname}",{decoded_payload}')
357
+
347
358
  def _on_log(self, client: mqtt.Client, userdata: Any, log_level: int, message: str) -> None:
348
359
  log.debug(message)
349
360
 
@@ -365,6 +376,8 @@ class Broker:
365
376
  self._on_read(hostname, tokens, msg.payload)
366
377
  elif response == "ID":
367
378
  self._on_id(hostname, msg.payload)
379
+ elif response == "CALLID":
380
+ self._on_call_id(hostname, msg.payload)
368
381
 
369
382
  def seek(self, host: str, disk_id: int, offset: int, flength: int, optimization_strategy: int) -> None:
370
383
  length = int(flength / self.factor)
@@ -99,14 +99,24 @@ def main():
99
99
  options = parse_options_string(args.options) if args.options else {}
100
100
 
101
101
  options["nothreads"] = True
102
- options["allow_other"] = True
103
102
  options["ro"] = True
104
-
105
- print(f"Mounting to {args.mount} with options: {_format_options(options)}")
103
+ # Check if the allow other option is either not set (None) or set to True with -o allow_other=True
104
+ if (allow_other := options.get("allow_other")) is None or str(allow_other).lower() == "true":
105
+ options["allow_other"] = True
106
+ # If allow_other was not set, warn the user that it will be set by default
107
+ if allow_other is None:
108
+ log.warning("Using option 'allow_other' by default, please use '-o allow_other=False' to unset")
109
+ # Let the user be able to unset the allow_other option by supplying -o allow_other=False
110
+ elif str(allow_other).lower() == "false":
111
+ options["allow_other"] = False
112
+
113
+ log.info("Mounting to %s with options: %s", args.mount, _format_options(options))
106
114
  try:
107
115
  FUSE(DissectMount(vfs), args.mount, **options)
108
- except RuntimeError:
109
- parser.exit("FUSE error")
116
+ except RuntimeError as e:
117
+ log.error("Mounting target %s failed", t)
118
+ log.debug("", exc_info=e)
119
+ parser.exit(1)
110
120
 
111
121
 
112
122
  def _format_options(options: dict[str, Union[str, bool]]) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.20.dev1
3
+ Version: 3.20.dev3
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
@@ -88,7 +88,7 @@ dissect/target/loaders/kape.py,sha256=t5TfrGLqPeIpUUpXzIl6aHsqXMEGDqJ5YwDCs07DiB
88
88
  dissect/target/loaders/libvirt.py,sha256=_3EFIytMGbiLMISHx4QXVrDebsRO6J6sMkE3TH68qsg,1374
89
89
  dissect/target/loaders/local.py,sha256=Ul-LCd_fY7SyWOVR6nH-NqbkuNpxoZVmffwrkvQElU8,16453
90
90
  dissect/target/loaders/log.py,sha256=cCkDIRS4aPlX3U-n_jUKaI2FPSV3BDpfqKceaU7rBbo,1507
91
- dissect/target/loaders/mqtt.py,sha256=pn2VtFh0jeYXMod4CuZOKGhe2ScQixJ1Xhx6MHe0rzk,16540
91
+ dissect/target/loaders/mqtt.py,sha256=28gmDFZ-9ikR2NXJ2mClUhXqH_YiAk1JpK-5yChmBjY,17095
92
92
  dissect/target/loaders/multiraw.py,sha256=4a3ZST0NwjnfPDxHkcEfAcX2ddUlT_C-rcrMHNg1wp4,1046
93
93
  dissect/target/loaders/ova.py,sha256=6h4O-7i87J394C6KgLsPkdXRAKNwtPubzLNS3vBGs7U,744
94
94
  dissect/target/loaders/overlay.py,sha256=tj99HKvNG5_JbGfb1WCv4KNSbXXSnEcPQY5XT-JUxn8,992
@@ -346,7 +346,7 @@ dissect/target/tools/fs.py,sha256=3Ny8zoooVeeF7OUkQ0nxZVdEaQeU7vPRjDOYhz6XfRA,53
346
346
  dissect/target/tools/fsutils.py,sha256=dyAdp2fzydcozaIZ1mFTpdUeVcibYNJCHN8AFw5FoKU,8285
347
347
  dissect/target/tools/info.py,sha256=8nnbqFUYeo4NLPE7ORcTBcDL-TioGB2Nqc1TKcu5qdY,5715
348
348
  dissect/target/tools/logging.py,sha256=5ZnumtMWLyslxfrUGZ4ntRyf3obOOhmn8SBjKfdLcEg,4174
349
- dissect/target/tools/mount.py,sha256=L_0tSmiBdW4aSaF0vXjB0bAkTC0kmT2N1hrbW6s5Jow,3254
349
+ dissect/target/tools/mount.py,sha256=8GRYnu4xEmFBHxuIZAYhOMyyTGX8fat1Ou07DNiUnW4,3945
350
350
  dissect/target/tools/query.py,sha256=XgMDSfaN4SivJmIIEntYJOXcOEwWrUp_tYt5AjEtB4k,15602
351
351
  dissect/target/tools/reg.py,sha256=FDsiBBDxjWVUBTRj8xn82vZe-J_d9piM-TKS3PHZCcM,3193
352
352
  dissect/target/tools/shell.py,sha256=dmshIriwdd_UwrdUcTfWkcYD8Z0mjzbDqwyZG-snDdM,50482
@@ -364,10 +364,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
364
364
  dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
365
365
  dissect/target/volumes/md.py,sha256=7ShPtusuLGaIv27SvEETtgsuoQyAa4iAAeOR1NEaajI,1689
366
366
  dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
367
- dissect.target-3.20.dev1.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
368
- dissect.target-3.20.dev1.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
369
- dissect.target-3.20.dev1.dist-info/METADATA,sha256=1XI5IVZx3HoJBJYTnLik1qnCi2k23Dhbz1_to6LkKCI,12896
370
- dissect.target-3.20.dev1.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
371
- dissect.target-3.20.dev1.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
372
- dissect.target-3.20.dev1.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
373
- dissect.target-3.20.dev1.dist-info/RECORD,,
367
+ dissect.target-3.20.dev3.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
368
+ dissect.target-3.20.dev3.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
369
+ dissect.target-3.20.dev3.dist-info/METADATA,sha256=f9ZYzt2qL_kEBYWk71VAmndt8xuFAN6I25mQrd-aUDo,12896
370
+ dissect.target-3.20.dev3.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
371
+ dissect.target-3.20.dev3.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
372
+ dissect.target-3.20.dev3.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
373
+ dissect.target-3.20.dev3.dist-info/RECORD,,