Я случайно отключил жесткий диск, когда он еще работал, и повредил установку Windows 7; Теперь я полностью не могу загрузиться в Windows. Я перепробовал все, чтобы попробовать и восстановить установку: Windows Startup Repair, chkdsk / r, SFC / scannow, bootrec / rebuildbcd и т. Д., И не повезло. Я хочу просто выполнить новую установку, но моя проблема в том, что у меня нигде не записан ключ продукта Windows, и я не могу использовать какие-либо сценарии или утилиты для его извлечения из реестра, потому что не могу загрузиться в Windows.
Ключи продуктов Windows 7 хранятся в зашифрованном виде в значении «DigitalProductId» раздела реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion. Мне удалось смонтировать поврежденный раздел Windows, доступный только для чтения, с живого компакт-диска Ubuntu и скопировать куст реестра Windows \ System32 \ config \ SOFTWARE, который содержит соответствующий ключ и значение, на флэш-диск, но загрузить этот куст в regedit. при работающей установке Windows, а затем при попытке использования сценариев или служебных программ для расшифровки загруженного значения «DigitalProductId» возвращается только ключ продукта установки хоста Windows, независимо от того, сколько я пытаюсь поиграться. Я пытался связаться со службой поддержки Microsoft, и они были довольно бесполезны. Кто-нибудь сможет направить меня дальше? Возможно, есть ли другой способ получить ключ продукта из Linux?
Если кто-то, более знакомый со сценариями / криптографией, захочет попробовать выполнить расшифровку ключа продукта вручную, следуя сценарию дешифрования, я могу отправить вам по электронной почте экспортированное значение «DigitalProductId», куст реестра ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ и сценарий дешифрования.
Ответы:
Для Linux есть отличный инструмент под названием
chntpw
. Вы можете легко получить его в Debian / Ubuntu через:Чтобы просмотреть соответствующий файл реестра, подключите диск Windows и откройте его следующим образом:
Теперь, чтобы получить расшифровку,
DigitalProductId
введите эту команду:источник
SOFTWARE
для имени файла.Для тех, кто не стесняется немного заняться кодированием.
Я нашел алгоритм около 10 лет назад и реализовал его в C # (см. Ниже)
Если вы просто хотите запустить его в Windows
Я позволил себе преобразовать его в скрипт powershell:
Запустите это, и вы получите ключ продукта. (Так что нет кодирования для вас в конце концов)
Оригинальный пост
Так что это фактический код C #, который я выкопал и прокомментировал.
Вам нужно будет передать его
Software\Microsoft\Windows NT\CurrentVersion
в качестве ключа, где он найдетDigitalProductId
В то время MS Office Products использовала тот же алгоритм, поэтому, предоставляя функцию с соответствующим ключом реестра, она также могла рассчитывать эти ключи продукта.
Вы, конечно, можете реорганизовать функцию так, чтобы она принимала байтовый массив в качестве входных данных.
На сегодня. Я только что проверил это на своем компьютере с Windows 10, и он все еще работает.
источник
Вот порт Python другого ответа (адаптированный для Windows 8.1). Преимущество этого
chntpw
заключается в том, что он будет работать даже с дисками в состоянии «только чтение».Требования:
Код:
источник
Вот моя реализация bash. Я называю это get_windows_key.sh хорошо работает с clonezilla. Первоначально я разместил его здесь https://sourceforge.net/p/clonezilla/discussion/Open_discussion/thread/979f335385/
источник