Wie lese ich den Windows-Produktschlüssel aus einer Registry-Sicherung aus?
- Grundlagen zur Registry-Sicherung
- Lokalisieren des Produktschlüssels in der Registry
- Registry-Hive aus der Sicherung laden
- Produktschlüssel aus dem DigitalProductId-Wert extrahieren
- PowerShell-Beispiel zum Auslesen des Produktschlüssels
- Abschließendes Entfernen der geladenen Hive
- Alternative Tools
- Fazit
Der Windows-Produktschlüssel ist ein wichtiger Lizenzschlüssel, der zur Aktivierung des Betriebssystems verwendet wird. Oftmals ist es notwendig, diesen Schlüssel aus einer Registry-Sicherung auszulesen, beispielsweise wenn das System nicht mehr startet oder man eine Sicherung vor einer Neuinstallation überprüft. In der Windows-Registry ist der Produktschlüssel verschlüsselt gespeichert, daher kann man ihn nicht direkt als Klartext aus der Registry lesen. Trotzdem gibt es Methoden, um den Schlüssel aus einer Registry-Sicherung zu extrahieren und zu dekodieren.
Grundlagen zur Registry-Sicherung
Eine Registry-Sicherung besteht aus einer Kopie verschiedener Registry-Hives, wie zum Beispiel SYSTEM oder SOFTWARE. Der Produktschlüssel befindet sich üblicherweise im Hive SOFTWARE unter einem bestimmten Pfad. Um den Schlüssel aus einer Registry-Sicherung auszulesen, benötigt man Zugang zu diesen Hives und Werkzeuge, die es ermöglichen, die enthaltenen Daten auszulesen und korrekt zu interpretieren.
Lokalisieren des Produktschlüssels in der Registry
Der Windows-Produktschlüssel ist im Hive SOFTWARE zu finden, genauer unter folgendem Registrierungspfad:
Microsoft\Windows NT\CurrentVersionDort befindet sich ein Wert namens DigitalProductId, der den Produktschlüssel codiert enthält. Da Sie eine Registry-Sicherung haben, müssen Sie zunächst diesen Hive mounten oder importieren, um darauf zugreifen zu können. Dies kann unter Windows mit dem Registry-Editor erfolgen oder durch spezielle Tools.
Registry-Hive aus der Sicherung laden
Öffnen Sie den Windows-Registry-Editor (regedit.exe) mit Administratorrechten. Wählen Sie im Menü den Punkt Datei > Struktur laden. Navigieren Sie zum Speicherort Ihrer Registry-Sicherung und wählen Sie die Datei SOFTWARE aus. Sie werden aufgefordert, einen temporären Namen für die geladene Struktur anzugeben. Wählen Sie beispielsweise TempHive.
Nun können Sie im Pfad HKEY_LOCAL_MACHINE\TempHive\Microsoft\Windows NT\CurrentVersion den Wert DigitalProductId sehen. Dieser enthält den verschlüsselten Produktschlüssel in Form von Binärdaten.
Produktschlüssel aus dem DigitalProductId-Wert extrahieren
Das Auslesen des Produktschlüssels aus dem Binärwert DigitalProductId ist nicht trivial, da der Schlüssel verschlüsselt vorliegt. Es existieren verschiedene Skripte und Programme, die diesen Wert dekodieren können, beispielsweise in PowerShell, Python oder vordefinierte Tools wie "ProduKey" von NirSoft.
Wenn Sie gerne mit PowerShell arbeiten, können Sie ein Script verwenden, das den DigitalProductId-Wert liest, entschlüsselt und den Klartext-Schlüssel anzeigt. Alternativ kann man den Wert per Hexdump auslesen und mit einer speziell programmierten Routine umwandeln.
PowerShell-Beispiel zum Auslesen des Produktschlüssels
Nach dem Laden der Hive in den Registry-Editor können Sie den folgenden PowerShell-Code verwenden, um den Produktschlüssel aus dem temporären Hive auszulesen:
function Get-WindowsKey { param ( $RegistryPath = "HKLM:\TempHive\Microsoft\Windows NT\CurrentVersion" )$DigitalProductId = (Get-ItemProperty -Path $RegistryPath -Name "DigitalProductId").DigitalProductId
$Key = "" $Chars = "BCDFGHJKMPQRTVWXY2346789" $KeyOffset = 52 $IsWin8OrUp = (($DigitalProductId / 6) -band 1) -ne 0 $PidArray = $DigitalProductId for ($i = 24; $i -ge 0; $i--) { $Current = 0 for ($j = 14; $j -ge 0; $j--) { $Current = $Current * 256 -bxor $PidArray $PidArray = ::Floor($Current / 24) $Current = $Current % 24 } $Key = $Chars + $Key if (($i % 5) -eq 0 -and $i -ne 0) { $Key = "-" + $Key } } return $Key}# Beispielaufruf:$WindowsKey = Get-WindowsKeyWrite-Output "Ausgelesener Produktschlüssel: $WindowsKey"$DigitalProductId = (Get-ItemProperty -Path $RegistryPath -Name "DigitalProductId").DigitalProductId
Dieser Code liest den Wert DigitalProductId aus und dekodiert ihn entsprechend dem von Microsoft verwendeten Algorithmus für Windows 7 und neuer. Stellen Sie sicher, dass die temporäre Hive-Struktur geladen ist und im Pfad verfügbar ist.
Abschließendes Entfernen der geladenen Hive
Nachdem Sie den Produktschlüssel erfolgreich ausgelesen haben, sollten Sie die temporär geladene Hive-Struktur wieder entladen. Öffnen Sie dazu den Registry-Editor und markieren Sie den geladenen Schlüssel, beispielsweise TempHive. Klicken Sie anschließend auf Datei > Struktur entladen. Dadurch wird die temporäre Datenbank sauber entfernt und mögliche Konflikte vermieden.
Alternative Tools
Wenn Sie sich mit Registry-Editor oder PowerShell nicht wohlfühlen, können Sie auch fertige Tools nutzen. "ProduKey" von NirSoft ist eines der bekanntesten und kann den Produktschlüssel aus lokalen Dateien oder Registry-Hives auslesen. Es ist sehr einfach zu bedienen und bietet eine grafische Oberfläche.
Fazit
Das Auslesen des Windows-Produktschlüssels aus einer Registry-Sicherung erfordert das Laden des SOFTWARE-Hives, um den verschlüsselten Wert DigitalProductId unter Microsoft\Windows NT\CurrentVersion zu finden. Anschließend muss der Wert mit einem speziellen Dekodieralgorithmus aufbereitet werden, um den Klartext-Produktschlüssel zu erhalten. Mit PowerShell oder spezialisierten Tools lässt sich dies relativ einfach durchführen. Durch das sorgfältige Entladen der Hive vermeiden Sie Probleme im laufenden System.
