J'ai accidentellement déconnecté mon disque dur alors qu'il était encore en cours d'exécution et j'ai corrompu mon installation de Windows 7; Je suis maintenant complètement incapable de démarrer sous Windows. J'ai tout essayé pour réparer et réparer l'installation: Windows Startup Repair, chkdsk / r, SFC / scannow, bootrec / rebuildbcd, etc. et pas de chance. Je veux simplement effectuer une nouvelle installation, mais mon problème est que je n'ai pas écrit ma clé de produit Windows nulle part, et je ne peux pas utiliser de scripts ou d'utilitaires pour la récupérer dans le registre car je ne peux pas démarrer sous Windows.
Les clés de produit Windows 7 sont stockées, chiffrées, dans la valeur "DigitalProductId" de la clé de registre HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion. J'ai pu monter la partition Windows corrompue en lecture seule à partir d'un CD live Ubuntu et copier la ruche de registre Windows \ System32 \ config \ SOFTWARE, qui contient la clé et la valeur en question, sur un lecteur flash, mais en chargeant cette ruche dans regedit sur une installation Windows fonctionnelle, puis en essayant d'utiliser des scripts ou des utilitaires pour décrypter la valeur "DigitalProductId" chargée ne renvoie que la clé de produit de l'installation Windows hôte, quel que soit le nombre de manipulations que j'essaie. J'ai essayé de contacter le support Microsoft et ils ont été plutôt inutiles. Quelqu'un pourrait-il me guider davantage? Peut-être s'il existe un moyen différent de récupérer la clé de produit à partir de Linux?
Si quelqu'un plus familier avec les scripts / la cryptographie est disposé à essayer de suivre le script de décryptage pour décrypter la clé de produit à la main, je pourrais vous envoyer par e-mail la valeur "DigitalProductId" exportée, la ruche du registre LOGICIEL et le script de décryptage.
Réponses:
Il existe un excellent outil disponible pour Linux appelé
chntpw
. Vous pouvez l'obtenir facilement sur Debian / Ubuntu via:Pour regarder dans le fichier de registre approprié, montez le disque Windows et ouvrez-le comme ceci:
Maintenant, pour obtenir le décodage,
DigitalProductId
entrez cette commande:la source
SOFTWARE
pour le nom de fichier.Pour ceux qui n'hésitent pas à faire un peu de codage.
J'ai trouvé un algorithme il y a environ 10 ans et l'ai implémenté en C # (voir ci-dessous)
Si vous souhaitez simplement l'exécuter sous Windows
J'ai pris la liberté de le convertir en script PowerShell:
Exécutez cela et vous obtenez votre clé de produit. (Donc pas de codage pour vous après tout)
Message d'origine
C'est donc le code C # réel que j'ai déterré et commenté.
Vous devrez le passer
Software\Microsoft\Windows NT\CurrentVersion
comme une clé, où il trouvera leDigitalProductId
À cette époque, MS Office Products utilisait le même algorithme, donc en fournissant à la fonction la clé de registre appropriée, il pouvait également calculer ces clés de produit.
Vous pouvez bien sûr refactoriser la fonction pour qu'elle prenne un tableau d'octets en entrée.
Quant à aujourd'hui. Je viens de le tester sur ma machine Windows 10, et cela fonctionne toujours.
la source
Voici un port Python de l'autre réponse (adapté pour Windows 8.1). L'avantage de ceci
chntpw
est qu'il fonctionnera même avec des disques en lecture seule.Exigences:
Code:
la source
Voici mon implémentation bash. Je l'appelle get_windows_key.sh fonctionne bien avec clonezilla. Je l'ai initialement posté ici https://sourceforge.net/p/clonezilla/discussion/Open_discussion/thread/979f335385/
la source