Source code for plaso.parsers.winreg_plugins.mountpoints

# -*- coding: utf-8 -*-
"""This file contains the MountPoints2 plugin."""

from __future__ import unicode_literals

from plaso.containers import time_events
from plaso.containers import windows_events
from plaso.lib import definitions
from plaso.parsers import winreg
from plaso.parsers.winreg_plugins import interface


[docs]class MountPoints2Plugin(interface.WindowsRegistryPlugin): """Windows Registry plugin for parsing the MountPoints2 key.""" NAME = 'explorer_mountpoints2' DESCRIPTION = 'Parser for mount points Registry data.' FILTERS = frozenset([ interface.WindowsRegistryKeyPathFilter( 'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\' 'Explorer\\MountPoints2')]) URLS = ['http://support.microsoft.com/kb/932463'] # pylint 1.9.3 wants a docstring for kwargs, but this is not useful to add. # pylint: disable=missing-param-doc
[docs] def ExtractEvents(self, parser_mediator, registry_key, **kwargs): """Extracts events from a Windows Registry key. Args: parser_mediator (ParserMediator): mediates interactions between parsers and other components, such as storage and dfvfs. registry_key (dfwinreg.WinRegistryKey): Windows Registry key. """ for subkey in registry_key.GetSubkeys(): name = subkey.name if not name: continue values_dict = {} values_dict['Volume'] = name label_value = subkey.GetValueByName('_LabelFromReg') if label_value: values_dict['Label'] = label_value.GetDataAsObject() if name.startswith('{'): values_dict['Type'] = 'Volume' elif name.startswith('#'): # The format is: ##Server_Name#Share_Name. values_dict['Type'] = 'Remote Drive' server_name, _, share_name = name[2:].partition('#') values_dict['Remote_Server'] = server_name values_dict['Share_Name'] = '\\{0:s}'.format( share_name.replace('#', '\\')) else: values_dict['Type'] = 'Drive' event_data = windows_events.WindowsRegistryEventData() event_data.key_path = registry_key.path event_data.offset = subkey.offset event_data.regvalue = values_dict event_data.urls = self.URLS event = time_events.DateTimeValuesEvent( subkey.last_written_time, definitions.TIME_DESCRIPTION_WRITTEN)
parser_mediator.ProduceEventWithEventData(event, event_data) winreg.WinRegistryParser.RegisterPlugin(MountPoints2Plugin)