:py:mod:`dissect.target.plugins.apps.browser.browser` ===================================================== .. py:module:: dissect.target.plugins.apps.browser.browser Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: dissect.target.plugins.apps.browser.browser.BrowserPlugin Functions ~~~~~~~~~ .. autoapisummary:: :nosignatures: dissect.target.plugins.apps.browser.browser.try_idna Attributes ~~~~~~~~~~ .. autoapisummary:: dissect.target.plugins.apps.browser.browser.GENERIC_DOWNLOAD_RECORD_FIELDS dissect.target.plugins.apps.browser.browser.GENERIC_EXTENSION_RECORD_FIELDS dissect.target.plugins.apps.browser.browser.GENERIC_COOKIE_FIELDS dissect.target.plugins.apps.browser.browser.GENERIC_HISTORY_RECORD_FIELDS dissect.target.plugins.apps.browser.browser.GENERIC_PASSWORD_RECORD_FIELDS dissect.target.plugins.apps.browser.browser.BrowserDownloadRecord dissect.target.plugins.apps.browser.browser.BrowserExtensionRecord dissect.target.plugins.apps.browser.browser.BrowserHistoryRecord dissect.target.plugins.apps.browser.browser.BrowserCookieRecord dissect.target.plugins.apps.browser.browser.BrowserPasswordRecord .. py:data:: GENERIC_DOWNLOAD_RECORD_FIELDS :value: [('datetime', 'ts_start'), ('datetime', 'ts_end'), ('string', 'browser'), ('varint', 'id'),... .. py:data:: GENERIC_EXTENSION_RECORD_FIELDS :value: [('datetime', 'ts_install'), ('datetime', 'ts_update'), ('string', 'browser'), ('string', 'id'),... .. py:data:: GENERIC_COOKIE_FIELDS :value: [('datetime', 'ts_created'), ('datetime', 'ts_last_accessed'), ('string', 'browser'), ('string',... .. py:data:: GENERIC_HISTORY_RECORD_FIELDS :value: [('datetime', 'ts'), ('string', 'browser'), ('string', 'id'), ('uri', 'url'), ('string',... .. py:data:: GENERIC_PASSWORD_RECORD_FIELDS :value: [('datetime', 'ts_created'), ('datetime', 'ts_last_used'), ('datetime', 'ts_last_changed'),... .. py:data:: BrowserDownloadRecord .. py:data:: BrowserExtensionRecord .. py:data:: BrowserHistoryRecord .. py:data:: BrowserCookieRecord .. py:data:: BrowserPasswordRecord .. py:class:: BrowserPlugin(target: dissect.target.target.Target) Bases: :py:obj:`dissect.target.plugin.NamespacePlugin` 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 specified ``test`` as namespace and a function called ``example``, you must call your plugin with ``test.example``:: A ``Plugin`` class has the following private class attributes: - ``__namespace__`` - ``__record_descriptors__`` With the following three being assigned in :func:`register`: - ``__plugin__`` - ``__functions__`` - ``__exports__`` Additionally, the methods and attributes of :class:`Plugin` receive more private attributes by using decorators. The :func:`export` decorator adds the following private attributes - ``__exported__`` - ``__output__``: Set with the :func:`export` decorator. - ``__record__``: Set with the :func:`export` decorator. The :func:`internal` decorator and :class:`InternalPlugin` set the ``__internal__`` attribute. Finally. :func:`args` decorator sets the ``__args__`` attribute. :param target: The :class:`~dissect.target.target.Target` object to load the plugin for. .. py:attribute:: __namespace__ :value: 'browser' .. py:method:: keychain() -> set Retrieve a set of passphrases to use for decrypting saved browser credentials. Always adds an empty passphrase as some browsers encrypt values using empty passphrases. :returns: Set of passphrase strings. .. py:function:: try_idna(url: str) -> bytes Attempts to convert a possible Unicode url to ASCII using the IDNA standard. :param url: A String containing the url to be converted. Returns: Bytes object with the ASCII version of the url.