dissect.target.tools.utils.cli

Module Contents

Functions

configure_generic_arguments

process_generic_arguments

configure_plugin_arguments

process_plugin_arguments

Processes the arguments concerting plugin functions (-f, --function) and

open_target

open_targets

list_plugins

list_children

Pretty print children of targets (recursively).

generate_argparse_for_method

Generate an argparse.ArgumentParser for a bound or unbound Plugin class method.

generate_argparse_for_plugin_class

Generate an argparse.ArgumentParser for a Plugin class.

generate_argparse_for_plugin

Generate an argparse.ArgumentParser for a Plugin instance.

execute_function_on_target

Execute function on provided target with optional provided arguments.

plugin_function_with_argparser

Resolves which plugin function to execute, and creates the argument parser for said plugin.

persist_execution_report

catch_sigpipe

Catches KeyboardInterrupt and BrokenPipeError (OSError 22 on Windows).

args_to_uri

Converts argument-style -L to URI-style.

find_and_filter_plugins

escape_str

Escape non-ASCII, unicode characters and bytes to a printable form.

Attributes

dissect.target.tools.utils.cli.USAGE_FORMAT_TMPL = '{prog} -f {name}{usage}'
dissect.target.tools.utils.cli.configure_generic_arguments(parser: argparse.ArgumentParser) None
dissect.target.tools.utils.cli.process_generic_arguments(parser: argparse.ArgumentParser, args: argparse.Namespace) None
dissect.target.tools.utils.cli.configure_plugin_arguments(parser: argparse.ArgumentParser) None
dissect.target.tools.utils.cli.process_plugin_arguments(parser: argparse.ArgumentParser, args: argparse.Namespace, rest: list[str]) set

Processes the arguments concerting plugin functions (-f, --function) and exclusion list (-xf, --exclude-funciton).

It puts the excluded function paths inside args.excluded_functions as a side effect.

Returns:

True if there are multiple output types detected, false otherwise.

dissect.target.tools.utils.cli.open_target(args: argparse.Namespace) dissect.target.target.Target
dissect.target.tools.utils.cli.open_targets(args: argparse.Namespace) collections.abc.Iterator[dissect.target.target.Target]
dissect.target.tools.utils.cli.list_plugins(targets: list[str] | None = None, patterns: str = '', include_children: bool = False, json: bool = False) None
dissect.target.tools.utils.cli.list_children(args: argparse.Namespace) None

Pretty print children of targets (recursively).

dissect.target.tools.utils.cli.generate_argparse_for_method(method: collections.abc.Callable, usage_tmpl: str | None = None) argparse.ArgumentParser

Generate an argparse.ArgumentParser for a bound or unbound Plugin class method.

dissect.target.tools.utils.cli.generate_argparse_for_plugin_class(plugin_cls: type[dissect.target.plugin.Plugin], usage_tmpl: str | None = None) argparse.ArgumentParser

Generate an argparse.ArgumentParser for a Plugin class.

dissect.target.tools.utils.cli.generate_argparse_for_plugin(plugin_instance: dissect.target.plugin.Plugin, usage_tmpl: str | None = None) argparse.ArgumentParser

Generate an argparse.ArgumentParser for a Plugin instance.

dissect.target.tools.utils.cli.execute_function_on_target(target: dissect.target.target.Target, func: dissect.target.plugin.FunctionDescriptor, args: list[str] | None = None) tuple[str, Any]

Execute function on provided target with optional provided arguments.

If no explicit arguments are provided, they will be parsed from sys.argv.

dissect.target.tools.utils.cli.plugin_function_with_argparser(target_attr: dissect.target.plugin.Plugin | collections.abc.Callable) tuple[collections.abc.Callable | None, argparse.ArgumentParser | None]

Resolves which plugin function to execute, and creates the argument parser for said plugin.

dissect.target.tools.utils.cli.persist_execution_report(output_dir: pathlib.Path, report_data: dict, timestamp: datetime.datetime) pathlib.Path
dissect.target.tools.utils.cli.catch_sigpipe(func: collections.abc.Callable) collections.abc.Callable

Catches KeyboardInterrupt and BrokenPipeError (OSError 22 on Windows).

dissect.target.tools.utils.cli.args_to_uri(targets: list[str], loader_name: str, args: list[str] | None = None) list[str]

Converts argument-style -L to URI-style.

Turns:

target-query /evtxs/* -L log --log-hint="evtx" -f evtx

into:

target-query "log:///evtxs/*?hint=evtx" -f evtx

For loaders providing @arg() arguments.

dissect.target.tools.utils.cli.find_and_filter_plugins(functions: str, target: dissect.target.target.Target, excluded_func_paths: set[str] | None = None) collections.abc.Iterator[dissect.target.plugin.FunctionDescriptor]
dissect.target.tools.utils.cli.escape_str(value: str) str

Escape non-ASCII, unicode characters and bytes to a printable form.