Przypadkowo odłączyłem dysk twardy, gdy był jeszcze uruchomiony, i uszkodziłem instalację systemu Windows 7; Nie mogę teraz całkowicie uruchomić systemu Windows. Próbowałem wszystkiego, aby spróbować naprawić instalację: Windows Startup Repair, chkdsk / r, SFC / scannow, bootrec / rebuildbcd itp. I bez powodzenia. Chcę po prostu wykonać nową instalację, ale moim problemem jest to, że nie mam nigdzie zapisanego klucza produktu Windows i nie mogę użyć żadnych skryptów ani narzędzi do odzyskania go z rejestru, ponieważ nie mogę uruchomić się w systemie Windows.
Klucze produktu Windows 7 są przechowywane, szyfrowane, w wartości „DigitalProductId” klucza rejestru HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion. Byłem w stanie zamontować uszkodzoną partycję Windows tylko do odczytu z Live CD Ubuntu i skopiować gałąź rejestru Windows \ System32 \ config \ SOFTWARE, która zawiera klucz i wartość, na dysk flash, ale ładuję tę gałąź do regedit w działającej instalacji systemu Windows, a następnie próba użycia skryptów lub programów narzędziowych do odszyfrowania załadowanej wartości „DigitalProductId” zwraca tylko klucz produktu instalacji systemu Windows hosta, bez względu na to, ile próbuję zrobić. Próbowałem skontaktować się z pomocą techniczną Microsoft i byli raczej nieprzydatni. Czy ktoś byłby w stanie poprowadzić mnie dalej? Być może jeśli istnieje inny sposób na odzyskanie klucza produktu z systemu Linux?
Jeśli ktoś bardziej obeznany ze skryptami / kryptografią byłby skłonny spróbować wykonać skrypt odszyfrowujący, aby ręcznie odszyfrować klucz produktu, mógłbym wysłać Ci e-mailem wyeksportowaną wartość „DigitalProductId”, gałąź rejestru SOFTWARE i skrypt deszyfrujący.
Odpowiedzi:
Istnieje świetne narzędzie dla systemu Linux o nazwie
chntpw
. Możesz go łatwo pobrać na Debian / Ubuntu poprzez:Aby przejrzeć odpowiedni plik rejestru, podłącz dysk systemu Windows i otwórz go w następujący sposób:
Teraz, aby zdekodować,
DigitalProductId
wprowadź polecenie:źródło
SOFTWARE
dla nazwy pliku.Dla tych, którzy nie są nieśmiali, aby zrobić trochę kodowania.
Znalazłem algorytm około 10 lat temu i zaimplementowałem go w języku C # (patrz poniżej)
Jeśli chcesz po prostu uruchomić go w systemie Windows
Pozwoliłem sobie przekonwertować go na skrypt PowerShell:
Uruchom to, a otrzymasz klucz produktu. (W końcu nie ma dla ciebie kodowania)
Oryginalny post
Więc to jest rzeczywisty kod C #, który wykopałem i skomentowałem.
Musisz przekazać go
Software\Microsoft\Windows NT\CurrentVersion
jako klucz, gdzie znajdzieszDigitalProductId
W tym czasie MS Office Products używało tego samego algorytmu, więc dzięki funkcji z odpowiednim kluczem rejestru mógł również obliczyć te klucze produktu.
Możesz oczywiście zmienić tę funkcję tak, aby pobierała tablicę bajtów jako dane wejściowe.
Na dzisiaj. Właśnie przetestowałem to na moim komputerze z systemem Windows 10 i nadal działa.
źródło
Oto port Python drugiej odpowiedzi (dostosowany do systemu Windows 8.1). Zaletą tego
chntpw
jest to, że będzie działać nawet z dyskami w stanie tylko do odczytu.Wymagania:
Kod:
źródło
Oto moja implementacja bash. Nazywam to get_windows_key.sh działa dobrze z clonezilla. Pierwotnie opublikowałem go tutaj https://sourceforge.net/p/clonezilla/discussion/Open_discussion/thread/979f335385/
źródło