コード例 #1
0
ファイル: common.py プロジェクト: wushian/SysmonSearch
def _set_search_items_from_win_registry_key_object(patterns, prop):
    u'''
    extract and set search key/value items from Cybox binding WindowsRegistryKey Object
    '''
    if prop is None or type(prop) != WindowsRegistryKeyObjectType:
        return
    # translate cybox.bindings object to cybox.objects object
    obj = WinRegistryKey.from_obj(prop)

    # Win Registry Key
    if obj.key is not None:
        keyname = unicode(obj.key)
        if keyname[0] == '[' and keyname[len(keyname) - 1] == ']':
            for key in keyname[1:len(keyname) - 2].split(','):
                if obj.hive is not None:
                    key = u"%s\\%s" % (obj.hive, key)
                _add_search_item(patterns, u"RegistryKey", key)

        else:
            key = keyname
            if obj.hive is not None:
                key = u"%s\\%s" % (obj.hive, key)
            _add_search_item(patterns, u"RegistryKey", key)

    # Win Registry Value
    if obj.values is not None:
        for value in obj.values:
            if value is not None:
                if value.data is not None:
                    value_data = unicode(value.data)
                    if value_data[0] == '[' and value_data[len(value_data) -
                                                           1] == ']':
                        _add_search_item(
                            patterns, u"RegistryValue",
                            value_data[1:len(value_data) - 2].split(','))
                    else:
                        _add_search_item(patterns, u"RegistryValue",
                                         value_data)