我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用_winreg.HKEY_LOCAL_MACHINE。
def __init__(self, **kwargs): python_version = kwargs.pop('python', '3.4') python_path = None for node in ('Wow6432Node\\', ''): try: key = compat_winreg.OpenKey( compat_winreg.HKEY_LOCAL_MACHINE, r'SOFTWARE\%sPython\PythonCore\%s\InstallPath' % (node, python_version)) try: python_path, _ = compat_winreg.QueryValueEx(key, '') finally: compat_winreg.CloseKey(key) break except Exception: pass if not python_path: raise BuildError('No such Python version: %s' % python_version) self.pythonPath = python_path super(PythonBuilder, self).__init__(**kwargs)
def unregister(classobj): import _winreg subKeyCLSID = "SOFTWARE\\Microsoft\\Internet Explorer\\Extensions\\%38s" % classobj._reg_clsid_ try: hKey = _winreg.CreateKey( _winreg.HKEY_LOCAL_MACHINE, subKeyCLSID ) subKey = _winreg.DeleteValue( hKey, "ButtonText" ) _winreg.DeleteValue( hKey, "ClsidExtension" ) # for calling COM object _winreg.DeleteValue( hKey, "CLSID" ) _winreg.DeleteValue( hKey, "Default Visible" ) _winreg.DeleteValue( hKey, "ToolTip" ) _winreg.DeleteValue( hKey, "Icon" ) _winreg.DeleteValue( hKey, "HotIcon" ) _winreg.DeleteKey( _winreg.HKEY_LOCAL_MACHINE, subKeyCLSID ) except WindowsError: print "Couldn't delete Standard toolbar regkey." else: print "Deleted Standard toolbar regkey." # # test implementation #
def __call__(self, name, sam=KEY_READ): """Get a registry key:: registry(r"HKEY_LOCAL_MACHINE\\Software") registry("HKEY_LOCAL_MACHINE")("Software") :rtype: :class:`PyHKey` """ if name in self.registry_base_keys: key = self.registry_base_keys[name] if sam != key.sam: key = key.reopen(sam) return key if "\\" not in name: raise ValueError("Unknow registry base key <{0}>".format(name)) base_name, subkey = name.split("\\", 1) if base_name not in self.registry_base_keys: raise ValueError("Unknow registry base key <{0}>".format(base_name)) return self.registry_base_keys[base_name](subkey, sam)
def register(classobj): import _winreg subKeyCLSID = "SOFTWARE\\Microsoft\\Internet Explorer\\Extensions\\%38s" % classobj._reg_clsid_ try: hKey = _winreg.CreateKey( _winreg.HKEY_LOCAL_MACHINE, subKeyCLSID ) subKey = _winreg.SetValueEx( hKey, "ButtonText", 0, _winreg.REG_SZ, classobj._button_text_ ) _winreg.SetValueEx( hKey, "ClsidExtension", 0, _winreg.REG_SZ, classobj._reg_clsid_ ) # reg value for calling COM object _winreg.SetValueEx( hKey, "CLSID", 0, _winreg.REG_SZ, "{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}" ) # CLSID for button that sends command to COM object _winreg.SetValueEx( hKey, "Default Visible", 0, _winreg.REG_SZ, "Yes" ) _winreg.SetValueEx( hKey, "ToolTip", 0, _winreg.REG_SZ, classobj._tool_tip_ ) _winreg.SetValueEx( hKey, "Icon", 0, _winreg.REG_SZ, classobj._icon_) _winreg.SetValueEx( hKey, "HotIcon", 0, _winreg.REG_SZ, classobj._hot_icon_) except WindowsError: print "Couldn't set standard toolbar reg keys." else: print "Set standard toolbar reg keys."
def patch_scsi_identifiers(self): types = { "DiskPeripheral": self.HDD_IDENTIFIERS, "CdRomPeripheral": self.CDROM_IDENTIFIERS, } for row in itertools.product([0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]): type_ = query_value(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port %d\\Scsi Bus %d\\Target Id %d\\Logical Unit Id %d" % row, "Type") value = query_value(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port %d\\Scsi Bus %d\\Target Id %d\\Logical Unit Id %d" % row, "Identifier") if not type_ or not value: continue value = value.lower() if "vbox" in value or "vmware" in value or "qemu" in value or "virtual" in value: if type_ in types: new_value = random.choice(types[type_]) else: log.warning("Unknown SCSI type (%s), disguising it with a random string", type_) new_value = random_string(len(value)) set_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port %d\\Scsi Bus %d\\Target Id %d\\Logical Unit Id %d" % row, "Identifier", REG_SZ, new_value)
def start(self): if not self.options.get("dbgview"): return dbgview_path = os.path.join("bin", "dbgview.exe") if not os.path.exists(dbgview_path): log.error("DbgView.exe not found!") return # Make sure all logging makes it into DbgView. set_regkey( _winreg.HKEY_LOCAL_MACHINE, DebugPrintFilter, "", _winreg.REG_DWORD, 0xffffffff ) self.filepath = os.path.join(self.analyzer.path, "bin", "dbgview.log") # Accept the EULA and enable Kernel Capture. subprocess.Popen([ dbgview_path, "/accepteula", "/t", "/k", "/l", self.filepath, ]) log.info("Successfully started DbgView.")
def detect_vmware(): detected = False # try: # with OpenKey(HKEY_LOCAL_MACHINE, # r"HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port 0\\Scsi Bus 0\\Target Id 0\\Logical Unit Id 0") as key: # print 1 # except Exception, e: # print(e) try: with OpenKey(HKEY_LOCAL_MACHINE, r"SOFTWARE\\VMware, Inc.\\VMware Tools") as key: detected = True except Exception, e: pass ## print(e) windows_path = os.environ['WINDIR'] if os.path.isfile(os.path.join(windows_path, r"system32\drivers\vmmouse.sys")) or \ os.path.isfile(os.path.join(windows_path, r"system32\drivers\vmhgfs.sys")): detected = True return detected
def _find_msvc_in_registry(env,version): if _is_py2: import _winreg as winreg else: import winreg vs_ver = str(version) + '.0' vs_key = 'SOFTWARE\\Microsoft\\VisualStudio\\' + vs_ver + '\\Setup\\VS' vc_key = 'SOFTWARE\\Microsoft\\VisualStudio\\' + vs_ver + '\\Setup\\VC' vs_dir = _read_registry(winreg.HKEY_LOCAL_MACHINE, vs_key, 'ProductDir') vc_dir = _read_registry(winreg.HKEY_LOCAL_MACHINE, vc_key, 'ProductDir') # On a 64-bit host, look for a 32-bit installation if (not vs_dir or not vc_dir): vs_key = 'SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\' + \ vs_ver + '\\Setup\\VS' vc_key = 'SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\' + \ vs_ver + '\\Setup\\VC' vs_dir = _read_registry(winreg.HKEY_LOCAL_MACHINE, vs_key, 'ProductDir') vc_dir = _read_registry(winreg.HKEY_LOCAL_MACHINE, vc_key, 'ProductDir') return (vs_dir,vc_dir)
def _create_win(self): try: key = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE, r'Software\Microsoft\Windows NT\CurrentVersion\Fonts') except EnvironmentError: try: key = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE, r'Software\Microsoft\Windows\CurrentVersion\Fonts') except EnvironmentError: raise FontNotFound('Can\'t open Windows font registry key') try: path = self._lookup_win(key, self.font_name, STYLES['NORMAL'], True) self.fonts['NORMAL'] = ImageFont.truetype(path, self.font_size) for style in ('ITALIC', 'BOLD', 'BOLDITALIC'): path = self._lookup_win(key, self.font_name, STYLES[style]) if path: self.fonts[style] = ImageFont.truetype(path, self.font_size) else: if style == 'BOLDITALIC': self.fonts[style] = self.fonts['BOLD'] else: self.fonts[style] = self.fonts['NORMAL'] finally: _winreg.CloseKey(key)
def _get_effective_state_index(): """ Get the state file index that's currently in use - deprecated :return: index of the current effective state file """ hKey = OpenKey(HKEY_LOCAL_MACHINE, BITSStateFile.REG_BITS_KEY) return QueryValueEx(hKey, BITSStateFile.REG_STATE_INDEX_VALUE)[0]
def _FindTimeZoneKey(self): """Find the registry key for the time zone name (self.timeZoneName).""" # for multi-language compatability, match the time zone name in the # "Std" key of the time zone key. zoneNames = dict(self._get_indexed_time_zone_keys('Std')) # Also match the time zone key name itself, to be compatible with # English-based hard-coded time zones. timeZoneName = zoneNames.get(self.timeZoneName, self.timeZoneName) key = _RegKeyDict.open(_winreg.HKEY_LOCAL_MACHINE, self.tzRegKey) try: result = key.subkey(timeZoneName) except: raise ValueError('Timezone Name %s not found.' % timeZoneName) return result
def _get_time_zone_key(subkey=None): "Return the registry key that stores time zone details" key = _RegKeyDict.open(_winreg.HKEY_LOCAL_MACHINE, TimeZoneInfo.tzRegKey) if subkey: key = key.subkey(subkey) return key
def _find_exe_in_registry(self): try: from _winreg import OpenKey, QueryValue, HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER except ImportError: from winreg import OpenKey, QueryValue, HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER import shlex keys = ( r"SOFTWARE\Classes\FirefoxHTML\shell\open\command", r"SOFTWARE\Classes\Applications\firefox.exe\shell\open\command" ) command = "" for path in keys: try: key = OpenKey(HKEY_LOCAL_MACHINE, path) command = QueryValue(key, "") break except OSError: try: key = OpenKey(HKEY_CURRENT_USER, path) command = QueryValue(key, "") break except OSError: pass else: return "" if not command: return "" return shlex.split(command)[0]
def DllRegisterServer(): comclass = IEToolbar # register toolbar with IE try: print "Trying to register Toolbar.\n" hkey = _winreg.CreateKey( _winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Internet Explorer\\Toolbar" ) subKey = _winreg.SetValueEx( hkey, comclass._reg_clsid_, 0, _winreg.REG_BINARY, "\0" ) except WindowsError: print "Couldn't set registry value.\nhkey: %d\tCLSID: %s\n" % ( hkey, comclass._reg_clsid_ ) else: print "Set registry value.\nhkey: %d\tCLSID: %s\n" % ( hkey, comclass._reg_clsid_ ) # TODO: implement reg settings for standard toolbar button # unregister plugin
def DllUnregisterServer(): comclass = IEToolbar # unregister toolbar from internet explorer try: print "Trying to unregister Toolbar.\n" hkey = _winreg.CreateKey( _winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Internet Explorer\\Toolbar" ) _winreg.DeleteValue( hkey, comclass._reg_clsid_ ) except WindowsError: print "Couldn't delete registry value.\nhkey: %d\tCLSID: %s\n" % ( hkey, comclass._reg_clsid_ ) else: print "Deleting reg key succeeded.\n" # entry point
def _listen(self): """ Listen for information from a client and performs actions related to the windows registry """ registry = Registry() listener = Listener(('localhost', self.port), authkey=self.password) conn = listener.accept() msg = conn.recv() if type(msg) is list and len(msg) == 2: # Deleting debugger key debug_path = self.DEBUG_KEY + msg[0] k = registry.open_key(HKLM, debug_path) registry.del_value(k, "debugger") # Deleting the bad path k = registry.open_key(HKCU, msg[1]) if k: self.brush.color("[!!] POSSIBLE UAC BYPASS IN YOUR SYSTEM\n", 'RED') registry.delete_key(HKCU, msg[1]) ctypes.windll.user32.MessageBoxA( None, "UAC BYPASS DETECTADO Y MITIGADO. EJECUCION SEGURA DEL BINARIO", "PELIGRO!", 0) os.system(msg[0]) # Setting the debugger key before breaking connection k = registry.open_key(HKLM, debug_path) payload = self.build_payload(msg[0][:-3] + "pyw") registry.create_value(k, "debugger", payload) print "[+] Closing the listener" conn.close() listener.close()
def add_debugger(self, registry, binlist): """ Adds debugger registry key for each of the processes in the list """ for binary in binlist: path = self.DEBUG_KEY + binary k = registry.open_key(HKLM, path) if not(k): k = registry.create_key(HKLM, path) payload = self.build_payload(binary[:-3] + "pyw") registry.create_value(k, "debugger", payload)
def del_debugger(self, registry, binlist): """ Deletes debugger registry key for each of the processes in the list """ for binary in binlist: path = self.DEBUG_KEY + binary k = registry.open_key(HKLM, path) if not(k): return registry.del_value(k, "debugger")
def __init__(self, logCallback): MSstore = r"Software\Microsoft\SystemCertificates" GPstore = r"Software\Policy\Microsoft\SystemCertificates" self.regKeys = { "CU_STORE": [reg.HKEY_CURRENT_USER, MSstore], "LM_STORE": [reg.HKEY_LOCAL_MACHINE, MSstore], "USER_STORE": [reg.HKEY_USERS, MSstore], "CU_POLICY_STORE": [reg.HKEY_CURRENT_USER, GPstore], "LM_POLICY_STORE": [reg.HKEY_LOCAL_MACHINE, GPstore] } self.logCallback = logCallback
def _watch_thread_dispatcher(self): MSstore = r"Software\Microsoft\SystemCertificates" GPstore = r"Software\Policy\Microsoft\SystemCertificates" regKeys = { "CU_STORE": [win32con.HKEY_CURRENT_USER, MSstore], "LM_STORE": [win32con.HKEY_LOCAL_MACHINE, MSstore], "USER_STORE": [win32con.HKEY_USERS, MSstore], "CU_POLICY_STORE": [win32con.HKEY_CURRENT_USER, GPstore], "LM_POLICY_STORE": [win32con.HKEY_LOCAL_MACHINE, GPstore] } watchKeys = self.database.get_watch_keys() for regKey in watchKeys: self._log("Dispatcher preparing watch thread for key: %s" % regKey, messageType="DEBUG") key = regKey.split("/") storeName = key.pop(0) additionalValue = "\\%s" % "\\".join(key) keystore = regKeys[storeName] keyName = keystore[1] + additionalValue t = threading.Thread(target=self._watch_thread, args=(keystore[0], keyName, regKey, self._watch_thread_callback,)) self.watchThreads.append(t) self._log("Thread prepared.", messageType="DEBUG") self._log("Launching %d threads..." % len(self.watchThreads), messageType="DEBUG") for t in self.watchThreads: t.start() self._log("Dispatcher completed.", messageType="DEBUG") return
def __init__(self, scope): self.scope = scope if scope == 'user': self.root = winreg.HKEY_CURRENT_USER self.subkey = 'Environment' else: self.root = winreg.HKEY_LOCAL_MACHINE self.subkey = r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
def _get_awvs_console_path(self): """Return """ try: conn = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE) wvs_path = _winreg.QueryValue(conn, 'SOFTWARE\Classes\Acunetix_WVS_Scan\Shell\Open\Command') _winreg.CloseKey(conn) wvs_path = re.search('"([^"]*)"', wvs_path).group(1) wvs_dir = os.path.dirname(wvs_path) return os.path.join(wvs_dir, 'wvs_console.exe') except Exception, e: LOG.error(e, exc_info=True)
def _settzkeyname(): global TZKEYNAME handle = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE) try: _winreg.OpenKey(handle, TZKEYNAMENT).Close() TZKEYNAME = TZKEYNAMENT except WindowsError: TZKEYNAME = TZKEYNAME9X handle.Close()
def list(): """Return a list of all time zones known to the system.""" handle = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE) tzkey = _winreg.OpenKey(handle, TZKEYNAME) result = [_winreg.EnumKey(tzkey, i) for i in range(_winreg.QueryInfoKey(tzkey)[0])] tzkey.Close() handle.Close() return result
def __init__(self, name): self._name = name handle = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE) tzkey = _winreg.OpenKey(handle, "%s\%s" % (TZKEYNAME, name)) keydict = valuestodict(tzkey) tzkey.Close() handle.Close() self._stdname = keydict["Std"].encode("iso-8859-1") self._dstname = keydict["Dlt"].encode("iso-8859-1") self._display = keydict["Display"] # See http://ww_winreg.jsiinc.com/SUBA/tip0300/rh0398.htm tup = struct.unpack("=3l16h", keydict["TZI"]) self._stdoffset = -tup[0]-tup[1] # Bias + StandardBias * -1 self._dstoffset = self._stdoffset-tup[2] # + DaylightBias * -1 (self._stdmonth, self._stddayofweek, # Sunday = 0 self._stdweeknumber, # Last = 5 self._stdhour, self._stdminute) = tup[4:9] (self._dstmonth, self._dstdayofweek, # Sunday = 0 self._dstweeknumber, # Last = 5 self._dsthour, self._dstminute) = tup[12:17]
def __init__(self): handle = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE) tzlocalkey = _winreg.OpenKey(handle, TZLOCALKEYNAME) keydict = valuestodict(tzlocalkey) tzlocalkey.Close() self._stdname = keydict["StandardName"].encode("iso-8859-1") self._dstname = keydict["DaylightName"].encode("iso-8859-1") try: tzkey = _winreg.OpenKey(handle, "%s\%s"%(TZKEYNAME, self._stdname)) _keydict = valuestodict(tzkey) self._display = _keydict["Display"] tzkey.Close() except OSError: self._display = None handle.Close() self._stdoffset = -keydict["Bias"]-keydict["StandardBias"] self._dstoffset = self._stdoffset-keydict["DaylightBias"] # See http://ww_winreg.jsiinc.com/SUBA/tip0300/rh0398.htm tup = struct.unpack("=8h", keydict["StandardStart"]) (self._stdmonth, self._stddayofweek, # Sunday = 0 self._stdweeknumber, # Last = 5 self._stdhour, self._stdminute) = tup[1:6] tup = struct.unpack("=8h", keydict["DaylightStart"]) (self._dstmonth, self._dstdayofweek, # Sunday = 0 self._dstweeknumber, # Last = 5 self._dsthour, self._dstminute) = tup[1:6]
def _find_exe_in_registry(self): try: from _winreg import OpenKey, QueryValue, HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER except ImportError: from winreg import OpenKey, QueryValue, HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER import shlex keys = (r"SOFTWARE\Classes\FirefoxHTML\shell\open\command", r"SOFTWARE\Classes\Applications\firefox.exe\shell\open\command") command = "" for path in keys: try: key = OpenKey(HKEY_LOCAL_MACHINE, path) command = QueryValue(key, "") break except OSError: try: key = OpenKey(HKEY_CURRENT_USER, path) command = QueryValue(key, "") break except OSError: pass else: return "" if not command: return "" return shlex.split(command)[0]
def get_previous_install_prefixes(pyversion, arch, allusers=True): """Returns a list of prefixes for all old installations of this arch so that they can be removed from PATH if present. Note, it would be preferable to uninstall them properly instead. """ if allusers: # All Users key, subkey = (reg.HKEY_LOCAL_MACHINE, r'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\') else: # Just Me key, subkey = (reg.HKEY_CURRENT_USER, r'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\') keylist = [] # We ignore pyversion and instead look for any *conda installations. regex = re.compile('Python \S+ \(\S+conda[0-9]+ \S+ '+arch+'\)') _reg_query_sub_keys(key, subkey, keylist) results = [] for uninstsubkey in keylist: final_part = os.path.basename(uninstsubkey.rstrip('\\')) if regex.match(final_part): try: with reg.OpenKeyEx(key, uninstsubkey, 0, reg.KEY_QUERY_VALUE) as keyhandle: reg_value = reg.QueryValueEx(keyhandle, 'UninstallString') results.append(os.path.dirname(re.sub(r'^"|"$', '', reg_value[0]))) except: pass return results
def set_regkey(self, key, type_, value): set_regkey( _winreg.HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\%s" % self.install_name, key, type_, value )
def del_regkeys(self): regkeys = [ "SYSTEM\\CurrentControlSet\\Services\\%s\\Enum", "SYSTEM\\CurrentControlSet\\Services\\%s\\Security", "SYSTEM\\CurrentControlSet\\Services\\%s", ] for regkey in regkeys: del_regkey(_winreg.HKEY_LOCAL_MACHINE, regkey % self.install_name)
def change_productid(self): """Randomizes Windows ProductId. The Windows ProductId is occasionally used by malware to detect public setups of Cuckoo, e.g., Malwr.com. """ value = "{0}-{1}-{2}-{3}".format(random_integer(5), random_integer(3), random_integer(7), random_integer(5)) set_regkey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductId", REG_SZ, value)
def patch_bios(self): set_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System", "SystemBiosDate", REG_SZ, random.choice(self.SYSTEM_BIOS_DATES)) set_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System", "SystemBiosVersion", REG_MULTI_SZ, random.choice(self.SYSTEM_BIOS_VERSIONS)) set_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System", "VideoBiosDate", REG_SZ, random.choice(self.VIDEO_BIOS_DATES)) set_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System", "VideoBiosVersion", REG_MULTI_SZ, random.choice(self.VIDEO_BIOS_VERSIONS))
def patch_processor(self): keywords = { "QEMU Virtual CPU version 2.0.0": "Intel(R) Core(TM) i7 CPU @3GHz", } for idx in xrange(32): value = query_value(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\%d" % idx, "ProcessorNameString") if value is None: continue for k, v in keywords.items(): value = value.replace(k, v) set_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\%d" % idx, "ProcessorNameString", REG_SZ, value)
def patch_manufacturer(self): set_regkey(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Control\\SystemInformation", "BIOSVersion", REG_SZ, random.choice(self.BIOS_VERSIONS)) set_regkey(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Control\\SystemInformation", "BIOSReleaseDate", REG_SZ, random.choice(self.SYSTEM_BIOS_DATES)) set_regkey(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Control\\SystemInformation", "SystemManufacturer", REG_SZ, random.choice(self.SYSTEM_MANUFACTURERS)) set_regkey(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Control\\SystemInformation", "SystemProductName", REG_SZ, random.choice(self.SYSTEM_PRODUCTNAMES))
def patch_hdd_path(self): set_regkey(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Services\\Disk\\Enum", "0", REG_SZ, random.choice(self.HDD_PATHS))