Ich habe versehentlich meine Festplatte getrennt, während sie noch lief, und meine Windows 7-Installation beschädigt. Ich kann jetzt Windows nicht mehr vollständig starten. Ich habe alles versucht, um die Installation zu reparieren: Windows Startup Repair, chkdsk / r, SFC / scannow, bootrec / rebuildbcd usw. und kein Glück. Ich möchte nur eine Neuinstallation durchführen, aber mein Problem ist, dass ich meinen Windows-Produktschlüssel nirgendwo notiert habe und keine Skripte oder Dienstprogramme verwenden kann, um ihn aus der Registrierung abzurufen, da ich nicht in Windows booten kann.
Windows 7-Produktschlüssel werden verschlüsselt im Wert "DigitalProductId" des Registrierungsschlüssels HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion gespeichert. Ich konnte die beschädigte Windows-Partition schreibgeschützt von einer Ubuntu-Live-CD bereitstellen und die Registrierungsstruktur Windows \ System32 \ config \ SOFTWARE, die den betreffenden Schlüssel und Wert enthält, auf ein Flash-Laufwerk kopieren, diese Struktur jedoch in regedit laden Bei einer funktionierenden Windows-Installation und dem Versuch, den geladenen Wert "DigitalProductId" mithilfe von Skripten oder Dienstprogrammen zu entschlüsseln, wird nur der Produktschlüssel der Windows-Hostinstallation zurückgegeben, unabhängig davon, wie viel Fummelei ich versuche. Ich habe versucht, den Microsoft-Support zu kontaktieren, und sie waren nicht hilfreich. Würde mich jemand weiter führen können? Vielleicht, wenn es eine andere Möglichkeit gibt, den Produktschlüssel von Linux abzurufen?
Wenn jemand, der mit Skripten / Kryptografie besser vertraut ist, bereit wäre, das Entschlüsselungsskript zu befolgen, um den Produktschlüssel von Hand zu entschlüsseln, könnte ich Ihnen den exportierten Wert "DigitalProductId", die SOFTWARE-Registrierungsstruktur und das Entschlüsselungsskript per E-Mail senden.
Antworten:
Für Linux gibt es ein großartiges Tool namens
chntpw
. Sie können es einfach auf Debian / Ubuntu bekommen über:Um in die entsprechende Registrierungsdatei zu schauen, hängen Sie die Windows-Festplatte ein und öffnen Sie sie wie folgt:
Geben Sie nun den folgenden
DigitalProductId
Befehl ein , um die Entschlüsselung zu erhalten :quelle
SOFTWARE
für den Dateinamen Großbuchstaben verwenden .Für diejenigen, die nicht schüchtern sind, ein bisschen zu programmieren.
Ich habe vor ungefähr 10 Jahren einen Algorithmus gefunden und ihn in C # implementiert (siehe unten).
Wenn Sie es nur unter Windows ausführen möchten
Ich habe mir erlaubt, es in ein Powershell-Skript umzuwandeln:
Führen Sie dies aus und Sie erhalten Ihren Produktschlüssel. (Also doch keine Codierung für dich)
Ursprünglicher Beitrag
Das ist also der eigentliche C # -Code, den ich ausgegraben und kommentiert habe.
Sie müssen es
Software\Microsoft\Windows NT\CurrentVersion
als Schlüssel übergeben, wo es den findetDigitalProductId
Zu diesem Zeitpunkt verwendete MS Office Products denselben Algorithmus, sodass durch die Bereitstellung des entsprechenden Registrierungsschlüssels für die Funktion auch diese Produktschlüssel berechnet werden konnten.
Sie können die Funktion natürlich so umgestalten, dass ein Byte-Array als Eingabe verwendet wird.
Wie für heute. Ich habe es gerade auf meinem Windows 10-Computer getestet und es funktioniert immer noch.
quelle
Hier ist ein Python-Port der anderen Antwort (angepasst für Windows 8.1). Dies hat den Vorteil,
chntpw
dass es auch mit schreibgeschützten Laufwerken funktioniert.Bedarf:
Code:
quelle
Hier ist meine Bash-Implementierung. Ich nenne es get_windows_key.sh funktioniert gut von Clonezilla. Ich habe es ursprünglich hier gepostet: https://sourceforge.net/p/clonezilla/discussion/Open_discussion/thread/979f335385/
quelle