dissect.target.plugins.general.plugins
#
Module Contents#
Classes#
Base class for plugins. |
Functions#
Categorize plugins based on the module it's from. |
|
Create a dict from a list of strings. |
|
Update source dictionary with data in updated_dict. |
|
Create plugin overview with identations. |
|
Returns plugin_overview with specific indentation. |
|
Returns a list of indented descriptions. |
- dissect.target.plugins.general.plugins.categorize_plugins(plugins_selection: list[dict] = None) dict #
Categorize plugins based on the module it’s from.
- dissect.target.plugins.general.plugins.get_exported_plugins()#
- dissect.target.plugins.general.plugins.dictify_module_recursive(list_of_items: list, last_value: dissect.target.plugin.Plugin) dict #
Create a dict from a list of strings.
The last element inside the list, will point to last_value
- dissect.target.plugins.general.plugins.update_dict_recursive(source_dict: dict, updated_dict: dict) dict #
Update source dictionary with data in updated_dict.
- dissect.target.plugins.general.plugins.output_plugin_description_recursive(structure_dict: Union[Dict, dissect.target.plugin.Plugin], print_docs: bool, indentation_step=0) List[str] #
Create plugin overview with identations.
- dissect.target.plugins.general.plugins.get_plugin_description(plugin_class: Type[dissect.target.plugin.Plugin], print_docs: bool, indentation_step: int) str #
Returns plugin_overview with specific indentation.
- dissect.target.plugins.general.plugins.get_description_dict(structure_dict: Dict, print_docs: bool, indentation_step: int) List[str] #
Returns a list of indented descriptions.
- class dissect.target.plugins.general.plugins.PluginListPlugin(target: dissect.target.Target)#
Bases:
dissect.target.plugin.Plugin
Base class for plugins.
Plugins can optionally be namespaced by specifying the
__namespace__
class attribute. Namespacing results in your plugin needing to be prefixed with this namespace when being called. For example, if your plugin has specifiedtest
as namespace and a function calledexample
, you must call your plugin withtest.example
:A
Plugin
class has the following private class attributes:__namespace__
__record_descriptors__
With the following three being assigned in
register()
:__plugin__
__functions__
__exports__
Additionally, the methods and attributes of
Plugin
receive more private attributes by using decorators.The
export()
decorator adds the following private attributes__exported__
__output__
: Set with theexport()
decorator.__record__
: Set with theexport()
decorator.
The
internal()
decorator andInternalPlugin
set the__internal__
attribute. Finally.args()
decorator sets the__args__
attribute.- Parameters:
target – The
Target
object to load the plugin for.
- check_compatible()#
Perform a compatibility check with the target.
This function should return
None
if the plugin is compatible with the current target (self.target
). For example, check if a certain file exists. Otherwise it should raise anUnsupportedPluginError
.- Raises:
UnsupportedPluginError – If the plugin could not be loaded.
- plugins(plugins: list[dict] = None, print_docs: bool = False) None #