Accidentalmente desconecté mi disco duro mientras aún se estaba ejecutando y corrompió mi instalación de Windows 7; Ahora soy completamente incapaz de iniciar Windows. He intentado todo para intentar reparar la instalación: Reparación de inicio de Windows, chkdsk / r, SFC / scannow, bootrec / rebuildbcd, etc. y no tuve suerte. Solo quiero realizar una instalación nueva, pero mi problema es que no tengo mi clave de producto de Windows escrita en ningún lado, y no puedo usar ningún script o utilidades para recuperarla del registro porque no puedo iniciar Windows.
Las claves de producto de Windows 7 se almacenan, encriptadas, en el valor "DigitalProductId" de la clave de registro HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion. Pude montar la partición corrupta de Windows de solo lectura desde un CD en vivo de Ubuntu y copiar la sección del registro Windows \ System32 \ config \ SOFTWARE, que contiene la clave y el valor en cuestión, en una unidad flash, pero cargando esta sección en regedit en una instalación de Windows que funcione y luego intente usar scripts o utilidades para descifrar el valor "DigitalProductId" cargado, solo devuelve la clave del producto de la instalación de Windows del host, sin importar cuánto intento. Intenté contactar al soporte de Microsoft y no me han ayudado. ¿Alguien podría guiarme más? ¿Quizás si hay una forma diferente de recuperar la clave de producto de Linux?
Si alguien más familiarizado con las secuencias de comandos / criptografía estaría dispuesto a intentar y seguir la secuencia de comandos de descifrado para descifrar la clave del producto a mano, podría enviarle un correo electrónico con el valor exportado "DigitalProductId", la sección de registro SOFTWARE y la secuencia de comandos de descifrado.
Respuestas:
Hay una gran herramienta disponible para Linux llamada
chntpw
. Puede obtenerlo fácilmente en Debian / Ubuntu a través de:Para buscar en el archivo de registro relevante, monte el disco de Windows y ábralo así:
Ahora para obtener la decodificación,
DigitalProductId
ingrese este comando:fuente
SOFTWARE
para el nombre del archivo.Para aquellos que no son tímidos para hacer un poco de codificación.
Encontré un algoritmo hace unos 10 años y lo implementé en C # (ver más abajo)
Si solo quieres ejecutarlo en Windows
Me tomé la libertad de convertirlo en un script de PowerShell:
Ejecute esto y obtendrá su clave de producto. (Así que no hay codificación para ti después de todo)
Publicación original
Así que este es el código C # real que desenterré y comenté.
Tendrás que pasarlo
Software\Microsoft\Windows NT\CurrentVersion
como una clave, donde encontrará elDigitalProductId
En ese momento, MS Office Products usaba el mismo algoritmo, por lo que al proporcionar la función con la clave de registro relevante, también podía calcular esas claves de producto.
Por supuesto, puede refactorizar la función para que tome una matriz de bytes como entrada.
En cuanto a hoy. Lo acabo de probar en mi máquina con Windows 10 y todavía funciona.
fuente
Aquí hay un puerto Python de la otra respuesta (adaptado para Windows 8.1). La ventaja de esto
chntpw
es que funcionará incluso con unidades en estado de solo lectura.Requisitos:
Código:
fuente
Aquí está mi implementación bash. Lo llamo get_windows_key.sh funciona bien desde clonezilla. Originalmente lo publiqué aquí https://sourceforge.net/p/clonezilla/discussion/Open_discussion/thread/979f335385/
fuente