Witam
Na stronie jednej z firm informatycznych znalazłem kod z algorytmem odczytania klucza windows z rejestru productid.
Staram się zrozumieć, podstawiam różne liczby wykonuję obliczenia i jakoś nie mogę ręcznie poobliczać wartości, tak, żeby zgadzały się z wynikiem.
Prośba o dopisanie komentarzy do załączonego kodu (można również roboczo algorytmicznie powstawiać dane i przykładowo wyliczyć kilka wartości. Z góry dziękuję
//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];
}
Jeżeli chodzi o klucz to po odszyfrowaniu powinno wyjść:
[CIACH!]-7T498