Читайте 'MountingDevices' из реестра с Python - PullRequest
1 голос
/ 05 июня 2019

Сегодня у меня проблема с чтением информации в реестр HKLM \ SYSTEM \ MountingDevices. Когда я читаю с помощью терминала, благодаря команде «HIVEXSH» информация появляется в открытом виде. Однако когда я извлекаю их с помощью скрипта Python3, они отображаются в кодированном виде в следующем формате:

b'{\x00f\x00c\x00c\x009\x007\x008\x00b\x00c\x00c\x00-\x004\x005\x009\x001\x001\x001\x00e\x009\x0000-\x003\x008\x00d\x00d\x00e\x00a\x00a\x00d\x007\x00a\x004\x008\x008\x00c\x008\x00}\x00##x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x000\x000}

в своем скрипте я попытался добавить функцию декодирования следующим образом:

            str=''''
            for i in range(0, len(m), 2):
                if m[i]<128:
                    str+=chr(m[i])
            print(str)

Однако формат вывода не читается:

DI:DE'e
\???\USBSTOR#CdRom&Ven_hp&Prod_CDDVDW_GP70N&Rev_RR01#KXKHBUD5249_________&0#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}

Вот мой текущий код для чтения подключенных устройств:

def read_mountedDevices(sysreg):
    key = 'MountedDevices'
    try:
        mounted_devices = sysreg.open(key)
        for elt in mounted_devices.values():
            m = elt.value()

            str=''
            for i in range(0, len(m), 2):
                if m[i]<128:
                    str+=chr(m[i])
            print(str)

    except:
        print('no mounted devices found')

'' '

Результат, который я ожидаю, должен быть в следующем формате:
Файл смонтирован с указанием места назначения.

...