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.
- dissect/target/loaders/mqtt.py +13 -0
- dissect/target/tools/mount.py +15 -5
- {dissect.target-3.20.dev1.dist-info → dissect.target-3.20.dev3.dist-info}/METADATA +1 -1
- {dissect.target-3.20.dev1.dist-info → dissect.target-3.20.dev3.dist-info}/RECORD +9 -9
- {dissect.target-3.20.dev1.dist-info → dissect.target-3.20.dev3.dist-info}/COPYRIGHT +0 -0
- {dissect.target-3.20.dev1.dist-info → dissect.target-3.20.dev3.dist-info}/LICENSE +0 -0
- {dissect.target-3.20.dev1.dist-info → dissect.target-3.20.dev3.dist-info}/WHEEL +0 -0
- {dissect.target-3.20.dev1.dist-info → dissect.target-3.20.dev3.dist-info}/entry_points.txt +0 -0
- {dissect.target-3.20.dev1.dist-info → dissect.target-3.20.dev3.dist-info}/top_level.txt +0 -0
dissect/target/loaders/mqtt.py
CHANGED
@@ -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)
|
dissect/target/tools/mount.py
CHANGED
@@ -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
|
-
|
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
|
-
|
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.
|
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=
|
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=
|
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.
|
368
|
-
dissect.target-3.20.
|
369
|
-
dissect.target-3.20.
|
370
|
-
dissect.target-3.20.
|
371
|
-
dissect.target-3.20.
|
372
|
-
dissect.target-3.20.
|
373
|
-
dissect.target-3.20.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|