Windows Product Key还原 CDKey

网友投稿 760 2022-09-12

Windows Product Key还原 CDKey

Windows Product Key还原 CDKey

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 的"digitalProductId" 作为输入

void DecodeProductKey(unsigned char * digitalProductId, int dsize){ // Offset of first byte of encoded product key in // 'DigitalProductIdxxx" REG_BINARY value. Offset = 34H. const int keyStartIndex = 52; // Offset of last byte of encoded product key in // 'DigitalProductIdxxx" REG_BINARY value. Offset = 43H. const int keyEndIndex = keyStartIndex + 15; // Possible alpha-numeric characters in product key. const char *digits="BCDFGHJKMPQRTVWXY2346789"; // Length of decoded product key const int decodeLength = 29; // Length of decoded product key in byte-form. // Each byte represents 2 chars. const int decodeStringLength = 15; // Array of containing the decoded product key. unsigned char * decodedChars = new unsigned char[decodeLength+1]; // Extract byte 52 to 67 inclusive. unsigned char * hexPid = new unsigned char[15]; int n=0; int i; for (i = keyStartIndex; i <= keyEndIndex; i++) { hexPid[n]=(digitalProductId[i]); n++; } for (i = decodeLength - 1; i >= 0; i--) { // Every sixth char is a separator. if ((i + 1) % 6 == 0) { decodedChars[i] = '-'; } else { // Do the actual decoding. int digitMapIndex = 0; for (int j = decodeStringLength - 1; j >= 0; j--) { int byteValue = (digitMapIndex << 8) | (unsigned char)hexPid[j]; hexPid[j] = (unsigned char)(byteValue / 24); digitMapIndex = byteValue % 24; decodedChars[i] = digits[digitMapIndex]; } } } //让字符串正常结束 decodedChars[decodeLength]=NULL; printf("Window 密钥:%s/n",decodedChars); delete hexPid; delete decodedChars;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SetRegistryKey
下一篇:_WIN32_WINNT 定义
相关文章

 发表评论

暂时没有评论,来抢沙发吧~