示例#1
0
    def _ParseKey(self, mediator, registry_key, value_name):
        """Parses a Windows Registry key for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      registry_key (dfwinreg.WinRegistryKey): Windows Registry key.
      value_name (str): name of the Windows Registry value.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
        category_message_files = None
        registry_value = registry_key.GetValueByName('CategoryMessageFile')
        if registry_value:
            category_message_files = registry_value.GetDataAsObject()
            category_message_files = category_message_files.split(';')

        event_message_files = None
        registry_value = registry_key.GetValueByName('EventMessageFile')
        if registry_value:
            event_message_files = registry_value.GetDataAsObject()
            event_message_files = event_message_files.split(';')

        parameter_message_files = None
        registry_value = registry_key.GetValueByName('ParameterMessageFile')
        if registry_value:
            parameter_message_files = registry_value.GetDataAsObject()
            parameter_message_files = parameter_message_files.split(';')

        key_path_segments = registry_key.path.split('\\')
        log_source = key_path_segments[-1]
        log_type = key_path_segments[-2]

        windows_event_log_provider = artifacts.WindowsEventLogProviderArtifact(
            category_message_files=category_message_files,
            event_message_files=event_message_files,
            log_source=log_source,
            log_type=log_type,
            parameter_message_files=parameter_message_files)

        try:
            mediator.AddWindowsEventLogProvider(windows_event_log_provider)
        except KeyError:
            mediator.ProducePreprocessingWarning(
                self.ARTIFACT_DEFINITION_NAME,
                ('Unable to set add Windows Event Log provider: {0:s}/{1:s} to '
                 'knowledge base.').format(log_type, log_source))
示例#2
0
    def _ParseKey(self, mediator, registry_key, value_name):
        """Parses a Windows Registry key for a preprocessing attribute.

    Args:
      mediator (PreprocessMediator): mediates interactions between preprocess
          plugins and other components, such as storage and knowledge base.
      registry_key (dfwinreg.WinRegistryKey): Windows Registry key.
      value_name (str): name of the Windows Registry value or None if not
          specified.

    Raises:
      errors.PreProcessFail: if the preprocessing fails.
    """
        registry_value = registry_key.GetValueByName('')
        if not registry_value:
            mediator.ProducePreprocessingWarning(
                self.ARTIFACT_DEFINITION_NAME,
                'EventLog source missing for: {0:s}'.format(registry_key.name))
            return

        log_source = registry_value.GetDataAsObject()

        event_message_files = None
        registry_value = registry_key.GetValueByName('MessageFileName')
        if registry_value:
            event_message_files = registry_value.GetDataAsObject()
            event_message_files = sorted(
                filter(None, [
                    path.strip().lower()
                    for path in event_message_files.split(';')
                ]))

        provider_identifier = registry_key.name.lower()

        windows_event_log_provider = artifacts.WindowsEventLogProviderArtifact(
            event_message_files=event_message_files,
            identifier=provider_identifier,
            log_source=log_source)

        try:
            mediator.AddWindowsEventLogProvider(windows_event_log_provider)
        except KeyError:
            mediator.ProducePreprocessingWarning(
                self.ARTIFACT_DEFINITION_NAME,
                'Unable to set add Windows EventLog provider: {0:s}.',
                format(log_source))
示例#3
0
文件: artifacts.py 项目: dfjxs/plaso
 def testInitialize(self):
     """Tests the __init__ function."""
     attribute_container = artifacts.WindowsEventLogProviderArtifact()
     self.assertIsNotNone(attribute_container)