Desliguei acidentalmente meu disco rígido enquanto ele ainda estava em execução e corrompi minha instalação do Windows 7; Agora estou completamente incapaz de inicializar no Windows. Eu tentei de tudo para tentar reparar a instalação: Reparo de Inicialização do Windows, chkdsk / r, SFC / scannow, bootrec / rebuildbcd, etc. e sem sorte. Quero apenas executar uma instalação nova, mas meu problema é que não tenho minha chave de produto do Windows gravada em nenhum lugar e não consigo usar nenhum script ou utilitário para recuperá-la do registro porque não consigo inicializar no Windows.
As chaves do produto Windows 7 são armazenadas, criptografadas, no valor "DigitalProductId" da chave do Registro HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion. Consegui montar a partição corrompida do Windows somente leitura de um CD ao vivo do Ubuntu e copiar a seção de registro do Windows \ System32 \ config \ SOFTWARE, que contém a chave e o valor em questão, para uma unidade flash, mas carregando essa seção no regedit em uma instalação operacional do Windows e, em seguida, tentando usar scripts ou utilitários para descriptografar o valor "DigitalProductId" carregado, retorna apenas a chave do produto da instalação do Windows host, não importa o quanto tente. Tentei entrar em contato com o suporte da Microsoft e eles foram inúteis. Alguém seria capaz de me guiar ainda mais? Talvez se houver uma maneira diferente de recuperar a chave do produto do Linux?
Se alguém mais familiarizado com scripts / criptografia estiver disposto a tentar seguir o script de descriptografia para descriptografar a chave do produto manualmente, eu poderia enviar por e-mail o valor "DigitalProductId" exportado, a seção do registro do SOFTWARE e o script de descriptografia.
fonte
Respostas:
Existe uma ótima ferramenta disponível para Linux chamada
chntpw
. Você pode obtê-lo facilmente no Debian / Ubuntu via:Para pesquisar o arquivo de registro relevante, monte o disco do Windows e abra-o da seguinte maneira:
Agora, para obter o decodificado,
DigitalProductId
digite este comando:fonte
SOFTWARE
para o nome do arquivo.Para quem não tem vergonha de fazer um pouco de codificação.
Encontrei um algoritmo há cerca de 10 anos e o implementei em C # (veja abaixo)
Se você quiser apenas executá-lo no Windows
Tomei a liberdade de convertê-lo em um script do PowerShell:
Execute isso e você obtém sua chave do produto. (Portanto, sem codificação para você, afinal)
Postagem original
Portanto, este é o código C # real que desenterrei e comentei.
Você terá que passá-lo
Software\Microsoft\Windows NT\CurrentVersion
como uma chave, onde encontrará oDigitalProductId
Naquela época, os Produtos do MS Office usavam o mesmo algoritmo; portanto, fornecendo à função a chave de registro relevante, ele também podia calcular essas chaves de produto.
Obviamente, você pode refatorar a função para que ela use uma matriz de bytes como entrada.
Hoje. Acabei de o testar na minha máquina com Windows 10 e ainda funciona.
fonte
Aqui está uma porta Python da outra resposta (adaptada para Windows 8.1). A vantagem disso
chntpw
é que ele funcionará mesmo com unidades no estado somente leitura.Requisitos:
Código:
fonte
Aqui está minha implementação do bash. Eu chamo isso de get_windows_key.sh funciona bem no clonezilla. Originalmente, publiquei aqui https://sourceforge.net/p/clonezilla/discussion/Open_discussion/thread/979f335385/
fonte