Windows ProductId Recovery Drucken
Geschrieben von: jjk   
Mittwoch, den 17. Dezember 2014 um 21:00 Uhr

Dumm wenn man seinen Windows Lizenzschlüssel verlegt hat und nur noch an die verschlüsselten Informationen aus der Registry oder dem Windows Systeminformationspanel (Windowstaste + Pause) kommt. Damit könnte man die Installtion nicht wieder neu machen da man ja einen Produkt−Key braucht.

Da ich das Problem aktuell habe mit Windows 7, und es im Netz keine Java Implementierung gab, hier mal meine:


 char[] digits = { '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[] decodedKey = new char[25];

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter 30 character productId hex: ");
String binaryCodeStr = br.readLine();
if (binaryCodeStr.length() != 30)
throw new IllegalArgumentException("length not equals 30 characters!");

char[] binaryKeyChar = new char[30];
for (int i = 0; i < binaryCodeStr.length(); i++) {
binaryKeyChar[i] = binaryCodeStr.charAt(i);
}
byte[] binaryKey = Hex.decodeHex(binaryKeyChar);

int i, j, k;
for (i = decodedKey.length - 1; i >= 0; i--) {
k = 0;
for (j = binaryKey.length - 1; j >= 0; --j) {
k = (k << 8) + (binaryKey[j] & 0xff);
binaryKey[j] = (byte) (Math.floor(k / 24d));
k = k % 24;
}
decodedKey[i] = digits[k];
}
StringBuffer result = new StringBuffer();
for (int l = 0; l < decodedKey.length; l++) {
result.append(decodedKey[l]);
if ((l % 5 == 4) && (l != decodedKey.length - 1))
result.append('-');
}
System.out.println(result.toString());

Ich denke jeder der etwas Java kann wird daraus ein lauffähiges Programm erstellen können. Diese Codezeilen dienen ausschliesslich der legalen Nutzung schon vorhandener Lizenzen!

Zuletzt aktualisiert am Freitag, den 19. Dezember 2014 um 12:51 Uhr