dissect.target 3.20.dev19__py3-none-any.whl → 3.20.dev21__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.
@@ -128,6 +128,7 @@ class ExtFilesystemEntry(FilesystemEntry):
128
128
  # Set birthtime if available
129
129
  if self.entry.crtime:
130
130
  st_info.st_birthtime = self.entry.crtime.timestamp()
131
+ st_info.st_birthtime_ns = self.entry.crtime_ns
131
132
 
132
133
  # Set the nanosecond resolution separately
133
134
  st_info.st_atime_ns = self.entry.atime_ns
@@ -1410,29 +1410,38 @@ def build_pipe_stdout(pipe_parts: list[str]) -> Iterator[TextIO]:
1410
1410
  yield pipe_stdin
1411
1411
 
1412
1412
 
1413
- def open_shell(targets: list[str | pathlib.Path], python: bool, registry: bool) -> None:
1413
+ def open_shell(targets: list[str | pathlib.Path], python: bool, registry: bool, commands: list[str] | None) -> None:
1414
1414
  """Helper method for starting a regular, Python or registry shell for one or multiple targets."""
1415
1415
  targets = list(Target.open_all(targets))
1416
1416
 
1417
1417
  if python:
1418
- python_shell(targets)
1418
+ python_shell(targets, commands=commands)
1419
1419
  else:
1420
1420
  cli_cls = RegistryCli if registry else TargetCli
1421
- target_shell(targets, cli_cls=cli_cls)
1421
+ target_shell(targets, cli_cls=cli_cls, commands=commands)
1422
1422
 
1423
1423
 
1424
- def target_shell(targets: list[Target], cli_cls: type[TargetCmd]) -> None:
1424
+ def target_shell(targets: list[Target], cli_cls: type[TargetCmd], commands: list[str] | None) -> None:
1425
1425
  """Helper method for starting a :class:`TargetCli` or :class:`TargetHubCli` for one or multiple targets."""
1426
1426
  if cli := create_cli(targets, cli_cls):
1427
+ if commands is not None:
1428
+ for command in commands:
1429
+ cli.onecmd(command)
1430
+ return
1427
1431
  run_cli(cli)
1428
1432
 
1429
1433
 
1430
- def python_shell(targets: list[Target]) -> None:
1434
+ def python_shell(targets: list[Target], commands: list[str] | None) -> None:
1431
1435
  """Helper method for starting a (I)Python shell with multiple targets."""
1432
1436
  banner = "Loaded targets in 'targets' variable. First target is in 't'."
1433
1437
  ns = {"targets": targets, "t": targets[0]}
1434
1438
 
1435
1439
  try:
1440
+ if commands is not None:
1441
+ for command in commands:
1442
+ eval(command, ns)
1443
+ return
1444
+
1436
1445
  import IPython
1437
1446
 
1438
1447
  IPython.embed(header=banner, user_ns=ns, colors="linux")
@@ -1512,7 +1521,7 @@ def main() -> None:
1512
1521
  default=None,
1513
1522
  help="select a specific loader (i.e. vmx, raw)",
1514
1523
  )
1515
-
1524
+ parser.add_argument("-c", "--commands", action="store", nargs="*", help="commands to execute")
1516
1525
  configure_generic_arguments(parser)
1517
1526
  args, rest = parser.parse_known_args()
1518
1527
  args.targets = args_to_uri(args.targets, args.loader, rest) if args.loader else args.targets
@@ -1537,7 +1546,7 @@ def main() -> None:
1537
1546
  )
1538
1547
 
1539
1548
  try:
1540
- open_shell(args.targets, args.python, args.registry)
1549
+ open_shell(args.targets, args.python, args.registry, args.commands)
1541
1550
  except TargetError as e:
1542
1551
  log.error(e)
1543
1552
  log.debug("", exc_info=e)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.20.dev19
3
+ Version: 3.20.dev21
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
@@ -29,7 +29,7 @@ dissect/target/filesystems/config.py,sha256=GQOtixIIt-Jjtpl3IVqUTujcBFfWaAZeAtvx
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=pFv1dyqqTnImpMuy-slAqnnLVfteV9tS03AsG-svN9E,4776
32
+ dissect/target/filesystems/extfs.py,sha256=6LkpCqhAfMzDmHklK9fecgmHto-ZnHQOpn7H8Wj3vhk,4835
33
33
  dissect/target/filesystems/fat.py,sha256=ZSw-wS57vo5eIXJndfI1rZkGu_qh-vyioMzCZFZ_UTE,4611
34
34
  dissect/target/filesystems/ffs.py,sha256=Wu8sS1jjmD0QXXcAaD2h_zzfvinjco8qvj0hErufZ-4,4555
35
35
  dissect/target/filesystems/itunes.py,sha256=w2lcWv6jlBPm84tsGZehxKBMXXyuW3KlmwVTF4ssQec,6395
@@ -353,7 +353,7 @@ dissect/target/tools/logging.py,sha256=5ZnumtMWLyslxfrUGZ4ntRyf3obOOhmn8SBjKfdLc
353
353
  dissect/target/tools/mount.py,sha256=8GRYnu4xEmFBHxuIZAYhOMyyTGX8fat1Ou07DNiUnW4,3945
354
354
  dissect/target/tools/query.py,sha256=e-yAN9zdQjuOiTuoOQoo17mVEQGGcOgaA9YkF4GYpkM,15394
355
355
  dissect/target/tools/reg.py,sha256=FDsiBBDxjWVUBTRj8xn82vZe-J_d9piM-TKS3PHZCcM,3193
356
- dissect/target/tools/shell.py,sha256=0RqcPmOmFEQ0-5Efqm8ZdGbTeZw2OXFFaCGNyCCzUVs,53714
356
+ dissect/target/tools/shell.py,sha256=EBGuQS2PDfDgLPghgAjK1G7zoAjm2Gu6eZ9yz0qsuk4,54198
357
357
  dissect/target/tools/utils.py,sha256=JJZDSso1CEK2sv4Z3HJNgqxH6G9S5lbmV-C3h-XmcMo,12035
358
358
  dissect/target/tools/yara.py,sha256=70k-2VMulf1EdkX03nCACzejaOEcsFHOyX-4E40MdQU,2044
359
359
  dissect/target/tools/dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -368,10 +368,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
368
368
  dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
369
369
  dissect/target/volumes/md.py,sha256=7ShPtusuLGaIv27SvEETtgsuoQyAa4iAAeOR1NEaajI,1689
370
370
  dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
371
- dissect.target-3.20.dev19.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
372
- dissect.target-3.20.dev19.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
373
- dissect.target-3.20.dev19.dist-info/METADATA,sha256=I3DYNx-CfW04SXNH44iwl9Gtaq5jIdEfhdukyOAp9GM,12897
374
- dissect.target-3.20.dev19.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
375
- dissect.target-3.20.dev19.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
376
- dissect.target-3.20.dev19.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
377
- dissect.target-3.20.dev19.dist-info/RECORD,,
371
+ dissect.target-3.20.dev21.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
372
+ dissect.target-3.20.dev21.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
373
+ dissect.target-3.20.dev21.dist-info/METADATA,sha256=FdfozSKxhhuFaA4lQezDgcLc3raCghFSQN4owmDjv1w,12897
374
+ dissect.target-3.20.dev21.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
375
+ dissect.target-3.20.dev21.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
376
+ dissect.target-3.20.dev21.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
377
+ dissect.target-3.20.dev21.dist-info/RECORD,,