Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions dissect/target/tools/shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import logging
import os
import platform
import plistlib
import pydoc
import random
import re
Expand All @@ -23,6 +24,7 @@
from datetime import datetime, timedelta, timezone
from enum import IntEnum
from pathlib import Path, PurePosixPath
from pprint import pprint
from tarfile import BLKTYPE, CHRTYPE, DIRTYPE, FIFOTYPE, LNKTYPE, REGTYPE, SYMTYPE
from typing import TYPE_CHECKING, Any, BinaryIO, ClassVar, TextIO

Expand Down Expand Up @@ -1504,6 +1506,16 @@ def cmd_hexdump(self, args: argparse.Namespace, stdout: TextIO) -> bool:

return False

@arg("path", type=TargetPathArgument)
def cmd_plcat(self, args: argparse.Namespace, stdout: TextIO) -> bool:
"""Print the contents of an Apple plist file."""
paths = list(self.resolve_glob_path(args.path))
for path in paths:
if len(paths) > 1:
print(path)
pprint(plistlib.load(path.open("rb")), stream=stdout)
return False

@arg("path", type=TargetPathArgument)
@alias("digest")
@alias("shasum")
Expand Down