:py:mod:`dissect.target.tools.utils` ==================================== .. py:module:: dissect.target.tools.utils Module Contents --------------- Functions ~~~~~~~~~ .. autoapisummary:: :nosignatures: dissect.target.tools.utils.configure_generic_arguments dissect.target.tools.utils.process_generic_arguments dissect.target.tools.utils.generate_argparse_for_bound_method dissect.target.tools.utils.generate_argparse_for_unbound_method dissect.target.tools.utils.generate_argparse_for_plugin_class dissect.target.tools.utils.generate_argparse_for_plugin dissect.target.tools.utils.plugin_factory dissect.target.tools.utils.execute_function_on_target dissect.target.tools.utils.get_target_attribute dissect.target.tools.utils.plugin_function_with_argparser dissect.target.tools.utils.persist_execution_report dissect.target.tools.utils.catch_sigpipe dissect.target.tools.utils.args_to_uri dissect.target.tools.utils.find_and_filter_plugins .. py:function:: configure_generic_arguments(args_parser: argparse.ArgumentParser) -> None .. py:function:: process_generic_arguments(args: argparse.Namespace) -> None .. py:function:: generate_argparse_for_bound_method(method: Callable, usage_tmpl: Optional[str] = None) -> argparse.ArgumentParser Generate an `argparse.ArgumentParser` for a bound `Plugin` class method .. py:function:: generate_argparse_for_unbound_method(method: Callable, usage_tmpl: Optional[str] = None) -> argparse.ArgumentParser Generate an `argparse.ArgumentParser` for an unbound `Plugin` class method .. py:function:: generate_argparse_for_plugin_class(plugin_cls: Type[dissect.target.plugin.Plugin], usage_tmpl: Optional[str] = None) -> argparse.ArgumentParser Generate an `argparse.ArgumentParser` for a `Plugin` class .. py:function:: generate_argparse_for_plugin(plugin_instance: dissect.target.plugin.Plugin, usage_tmpl: Optional[str] = None) -> argparse.ArgumentParser Generate an `argparse.ArgumentParser` for a `Plugin` instance .. py:function:: plugin_factory(target: dissect.target.Target, plugin: Union[type, object], funcname: str, namespace: Optional[str]) -> tuple[dissect.target.plugin.Plugin, str] .. py:function:: execute_function_on_target(target: dissect.target.Target, func: dissect.target.plugin.PluginFunction, cli_params: Optional[List[str]] = None) -> Tuple[str, Any, List[str]] Execute function `func` on provided target `target` with provided `cli_params` list. .. py:function:: get_target_attribute(target: dissect.target.Target, func: dissect.target.plugin.PluginFunction) -> Union[dissect.target.plugin.Plugin, Callable] Retrieves the function attribute from the target. If the function does not exist yet, it will attempt to load it into the target. :param target: The target we wish to run the function on. :param func: The function to run on the target. :returns: The function, either plugin or a callable to execute. :raises UnsupportedPluginError: When the function was incompatible with the target. .. py:function:: plugin_function_with_argparser(target_attr: Union[dissect.target.plugin.Plugin, Callable]) -> tuple[Optional[Iterator], Optional[argparse.ArgumentParser]] Resolves which plugin function to execute, and creates the argument parser for said plugin. .. py:function:: persist_execution_report(output_dir: pathlib.Path, report_data: Dict, timestamp: datetime.datetime) -> pathlib.Path .. py:function:: catch_sigpipe(func: Callable) -> Callable Catches KeyboardInterrupt and BrokenPipeError (OSError 22 on Windows). .. py:function:: args_to_uri(targets: list[str], loader_name: str, rest: list[str]) -> 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. .. py:function:: find_and_filter_plugins(target: dissect.target.Target, functions: str, excluded_func_paths: set[str] = None) -> Iterator[dissect.target.plugin.PluginFunction]