Como puedo recuperar el número de serie de windows 7 de un disco dañado ?

Iniciado por yeyonesco, 21 Julio 2012, 00:18 AM

0 Miembros y 1 Visitante están viendo este tema.

yeyonesco

Hola amigos. He decidido preguntar a profesionales porque me he quedado estancado con un asunto. Os cuento. Hace unos días mi primo me trajo su portátil TOSHIBA para que se lo reparara porque al parecer de golpe le dejó de funcionar. Hasta aquí todo normal, pensé en algún virus o spyware, pero no fue así. El disco duro se había estropeado y había perdido las particiones y con las herramientas del disco de recuperación de windows 7 poco pude hacer, por lo que lo lleve a una tienda de confianza para que le cambiaran el disco duro por uno nuevo. En la tienda se lo cambiaron sin problemas pero le tuvieron que poner un windows pirata porque la pegatina de debajo del portatil con el numero de serie esta borrada.

El portatil esta funcionando de nuevo perfectamente pero como es mi primo me propuse rescatarle la mayor informacion posible del disco duro estropeado. Gracias al programa testdisk lo he conseguido y ya tengo a buen recaudo fotos, pelis y la musica que tenia almacenadas.

Usando el mismo programa he recuperado los ficheros DEFAULT, SAM, SECURITY, SOFTWARE y SYSTEM. Por lo que he leido estos ficheros son la base de datos del registro de windows. Por ese motivo he pensado en intentar recuperar la clave del windows original del portatil de mi primo a traves de estos ficheros ( que no se si es posible o no ). He encontrado programas que lo que hacen es sacar las password de los usuarios pero a mi no me interesa para nada estos datos.

He pensado en instalar un windows 7 bajado de cualquier sitio e instalarlo en una maquina virtual y luego usar estos ficheros, usando la consola de recuperación de windows ( como si estuviera reparando un registro dañado ) y luego usaría el programa LicenseCrawler para sacar la clave. Os parece factible esta idea o se puede intentar de otra manera ?

Gracias y perdón por el tocho pero he pensado que era necesario explicar bien la situación.

yeyonesco

Hola de nuevo. Ya lo resolvi por mi cuenta. Os comento porque se puede hacer de varias maneras.

Los datos de la licencia se encuentran en el archivo SOFTWARE. que esta hubicado en la carpera c:\WINDOWS\system32\config\regback

Este archivo corresponde en el registro a la rama HKEY_LOCAL_MACHINE/SOFTWARE. Una vez que tuve el archivo lo siguiente fue encontrar la manera de hallar el numero de serie del portatil de mi primo y he encontrado dos maneras de hacerlo. Una mucho mas manual que la otra, pero las dos igualmente efectivas.

Metodo 1. CUIDADO, ANTES DE HACERLO POR ESTE METODO CONVIENE REALIZAR UNA COPIA DE SEGURIDAD DE NUESTRO REGISTRO.

Resulta que el mismo registro de windows tiene una opcion para cargar subarboles enteros. En el manual que lo encontré lo hacian con el USER.DAT, y pensé que quizás funcionaría con este también y resulta que sí que funciona jeje ;D

Para cargar el contenido del archivo SOFTWARE seleccionamos la carpeta HKEY_LOCAL_MACHINE . Una vez seleccionada nos vamos al menu Archivo > Cargar subárbol...  Nos saldrá una ventana en la que podemos elegir el archivo, en este caso el SOFTWARE y pulsamos sobre Abrir. Nos saldrá otra ventana para que le pongamos un nombre al subarbol. Yo le puse PRUEBA. Ahora podemos ver el subarbol PRUEBA en nuestro registro.

Una vez realizado esto ya podemos usar el script en visual basic que os adjunto. Teneis que copiar todo el código y guardarlo como un archivo de visual basic esto es con extensión .vbs, yo lo he llamado igual que en el tutorial que seguí: win_key.vbs pero lo podeis llamar como más os guste.

PD. Yo llamé a mi subarbol PRUEBA y así esta puesto en el script. Si lo llamáis de otra manera tendréis que encontrar la línea que os pongo más abajo y modificar lo que os pongo en color rojo por el nombre que le hallais puesto y con esto ya funcionará sin problemas.

bDigitalProductID = objShell.RegRead("HKEY_LOCAL_MACHINE\PRUEBA\MICROSOFT\Windows NT\CurrentVersion\DigitalProductId")


Dim bDigitalProductID
Dim bProductKey()
Dim bKeyChars(24)
Dim ilByte
Dim nCur
Dim sCDKey
Dim ilKeyByte
Dim ilBit
ReDim Preserve bProductKey(14)
Set objShell = CreateObject("WScript.Shell")
bDigitalProductID = objShell.RegRead("HKEY_LOCAL_MACHINE\PRUEBA\MICROSOFT\Windows NT\CurrentVersion\DigitalProductId")
Set objShell = Nothing
For ilByte = 52 To 66
bProductKey(ilByte - 52) = bDigitalProductID(ilByte)
Next
bKeyChars(0) = Asc("B")
bKeyChars(1) = Asc("C")
bKeyChars(2) = Asc("D")
bKeyChars(3) = Asc("F")
bKeyChars(4) = Asc("G")
bKeyChars(5) = Asc("H")
bKeyChars(6) = Asc("J")
bKeyChars(7) = Asc("K")
bKeyChars(8) = Asc("M")
bKeyChars(9) = Asc("P")
bKeyChars(10) = Asc("Q")
bKeyChars(11) = Asc("R")
bKeyChars(12) = Asc("T")
bKeyChars(13) = Asc("V")
bKeyChars(14) = Asc("W")
bKeyChars(15) = Asc("X")
bKeyChars(16) = Asc("Y")
bKeyChars(17) = Asc("2")
bKeyChars(18) = Asc("3")
bKeyChars(19) = Asc("4")
bKeyChars(20) = Asc("6")
bKeyChars(21) = Asc("7")
bKeyChars(22) = Asc("8")
bKeyChars(23) = Asc("9")
For ilByte = 24 To 0 Step -1
nCur = 0
For ilKeyByte = 14 To 0 Step -1
nCur = nCur * 256 Xor bProductKey(ilKeyByte)
bProductKey(ilKeyByte) = Int(nCur / 24)
nCur = nCur Mod 24
Next
sCDKey = Chr(bKeyChars(nCur)) & sCDKey
If ilByte Mod 5 = 0 And ilByte <> 0 Then sCDKey = "-" & sCDKey
Next
Msgbox sCDKey


Una vez lo tenemos todo solo hace falta hacer doble click sobre nuestro script y automaticamente nos saldrá una ventanita con el numero de serie de nuestro windows, en este caso windows 7 ( no he probado con XP )

El porque del script es bien sencillo; el número de serie de windows esta en el registro, pero cifrada y lo que hace este script es desencriptarla.

Finalmente nos anotamos el numero de serie y procederemos a descargar el subarbol de nuesro registro para dejarlo tal cual estaba al principio. Para ello lo que haremos será primero seleccionar el subarbol PRUEBA e irnos al menú Archivo > Descargar subárbol... aceptar todo y ya tendremos nuestro registro como antes. Ahora ya podemos cerrar el registro sin preocuparnos.


Metodo 2

Mucho más facil e intuitivo. Se trata de un sencillo programa creado por la empresa nirsoft que nos permite ver el número de serie de nuestro windows, pero que también nos permite seleccionar un archivo ( hive se llama el tipo de archivo, yo no lo sabia ) y entonces el buscará dentro de ese archivo y nos devolverá todas las claves que encuentre. no solo la del Windows, sino que tambien la del office y algún que otro programa más.

Para seleccionar un archivo abrimos el programa y seleccionamos File > Select source y debemos elegir la opción

Load the product keys from external Software Registry hive, pulsar el botón browse y seleccionar el fichero del que queremos sacar las claves.

El programa es gratuito por lo que conviene bajárselo de la página oficial de nirsoft porque a mi me pasó que de otra página el antivirus me saltó. Me fuí a la página oficial y curiosamente el antivirus no me salto ni me dijo nada así que ya sabeis, para ahorraros problemas mejor de la página oficial de nirsoft.

ah se me olvidada el programa se llama produkey y tiene version tanto para 32 bits como para 64. Una gozada vamos

Bueno espero haber documentado bien el procedimiento. Por ultimo deciros que lo he comprobado con un windows original que tengo el numero de serie en la pegatina y los dos metodos funcionan al 100 %.

Bueno ya acabo jeje no escribo nunca pero cuando lo hago. Un saludo a todos, ya veo que habeis visitado el post con la pregunta y espero que si alguien estuviera en mi misma situación le sea de ayuda la solución que propongo.