:py:mod:`dissect.target.loaders.cyber`
======================================
.. py:module:: dissect.target.loaders.cyber
Module Contents
---------------
Classes
~~~~~~~
.. autoapisummary::
dissect.target.loaders.cyber.CyberLoader
Attributes
~~~~~~~~~~
.. autoapisummary::
dissect.target.loaders.cyber.HEADER
.. py:data:: HEADER
:value: Multiline-String
.. raw:: html
Show Value
.. code-block:: python
"""
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ _______ ______ ______ _____ ┃
┃ / ____\ \ / / _ \| ____| __ \ ┃
┃ | | \ \_/ /| |_) | |__ | |__) | ┃
┃ | | \ / | _ <| __| | _ / ┃
┃ | |____ | | | |_) | |____| | \ \ ┃
┃ \_____| |_| |____/|______|_| \_\ ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
"""
.. raw:: html
.. py:class:: CyberLoader(path: pathlib.Path, **kwargs)
Bases: :py:obj:`dissect.target.loader.Loader`
A base class for loading a specific path and coupling it to a :class:`Target `.
Implementors of this class are responsible for mapping any type of source data
to a :class:`Target `.
Whether that's to map all VMDK files from a VMX or mapping the contents of a zip file to a virtual filesystem,
if it's something that can be translated to a "disk", "volume" or "filesystem", you can write a loader that
maps it into a target.
You can do anything you want to manipulate the :class:`Target ` object
in your ``map`` function, but generally you do one of the following:
* open a :class:`Container ` and add it to ``target.disks``.
* open a :class:`Volume ` and add it to ``target.volumes``.
* open a :class:`VirtualFilesystem `, add your files into it and add it to ``target.filesystems``.
You don't need to manually parse volumes or filesystems in your loader, just add the highest level object you have
(e.g. a :class:`Container ` of a VMDK file) to the target.
However, sometimes you need to get creative.
Take a look at the :class:`ITunesLoader ` and
:class:`TarLoader ` for some creative examples.
:param path: The target path to load.
.. py:method:: detect(path: pathlib.Path) -> bool
:staticmethod:
Detects wether this ``Loader`` class can load this specific ``path``.
:param path: The target path to check.
:returns: ``True`` if the ``path`` can be loaded by a ``Loader`` instance. ``False`` otherwise.
.. py:method:: map(target: dissect.target.Target) -> None
Maps the loaded path into a ``Target``.
:param target: The target that we're mapping into.