SPRAWDŹ AKTUALNE PROMOCJE!

Odczytanie kluczy Windows z rejestru

Archiwum, Blog
6 min
Klucz produktu Windows od wersji XP jest zakodowany w kluczu rejestru HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion w wartości binarnej DigitalProductId w 30 cyfr w notacji heksadecymalnym po grupowanych w pary liczb (15 par).

Zakodowany klucz jest zapisany od 35 pary liczb w całej wartości DigitalProductId:

W moim przypadku to: "FE 04 00 E8 44 28 31 EE C4 5F F4 F7 92 69 09" (zakodowany klucz Windows 8  Cconsumer Preview). Następnie ciąg 15 par liczb oddzielone spacją musimy zdekodować. http://dreamiteam.pl/DekoderDigitalProductID.html

Przykładowy wynik działania dekodera:

Algorytm dekodujący klucz Windows jest ogólnie dostępny  - przykład w języku C#:
//Digital Product ID: FE 04 00 E8 44 28 31 EE C4 5F F4 F7 92 69 09 Char[] ZnakiDozwoloneWKluczuWindows = { 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9'  }; Char[] KluczWidnowsa = new Char[25]; System.Byte[] ZakodowanyKlucz = {0xFE, 0x04, 0x00, 0xE8, 0x44, 0x28, 0x31, 0xEE, 0xC4, 0x5F, 0xF4, 0xF7, 0x92, 0x69, 0x09}; int i, j, k; for (i = KluczWidnowsa.Length - 1; i >= 0; i--) { k = 0; for (j = ZakodowanyKlucz.Length - 1; j >= 0; j--) { k = (k << 8) + ZakodowanyKlucz[j]; ZakodowanyKlucz[j] = (System.Byte)(k / 24); k = k % 24; } KluczWidnowsa[i] = ZnakiDozwoloneWKluczuWindows[k]; }
Programy typu Windows Product Key Viewer korzystają z tych samych metod i algorytmu.