mirror of
https://github.com/Neo-Desktop/WindowsXPKg
synced 2024-12-22 12:30:17 +02:00
Merge pull request #15 from pottzman/ConfirmationID
Universal ConfirmationID
This commit is contained in:
commit
78c358c933
@ -690,22 +690,6 @@ void ConfirmationID::decode_iid_new_version(unsigned char* iid, unsigned char* h
|
|||||||
QWORD hardwareIDVal = ((QWORD)v1 << 32) | v2;
|
QWORD hardwareIDVal = ((QWORD)v1 << 32) | v2;
|
||||||
for (i = 0; i < 8; ++i)
|
for (i = 0; i < 8; ++i)
|
||||||
hwid[i] = (hardwareIDVal >> (8 * i)) & 0xFF;
|
hwid[i] = (hardwareIDVal >> (8 * i)) & 0xFF;
|
||||||
DWORD v3 = ((buffer[0] & 0xFFFFFF80) >> 7) & 0xFFFFFFFF;
|
|
||||||
DWORD v4 = v3 & 0xFFFFF800;
|
|
||||||
DWORD v5 = buffer[1] & 0x7F;
|
|
||||||
DWORD v6 = buffer[1] >> 7;
|
|
||||||
DWORD v7 = ((v5 << 25) | v4) >> 11;
|
|
||||||
productID[1] = v7 & 0x000003FF;
|
|
||||||
DWORD v8 = v7 & 0xFFFFFC00;
|
|
||||||
DWORD v9 = (v6 >> 11) & 0x00001FFF;
|
|
||||||
DWORD v10 = v9 & 0x00001C00;
|
|
||||||
DWORD v11 = v9 & 0x000003FF;
|
|
||||||
DWORD v12 = (((v6 << 21) & 0xFFFFFFFF) | v8) >> 10;
|
|
||||||
DWORD v13 = (v11 << 22) & 0xFFFFFFFF;
|
|
||||||
DWORD v14 = v13 | v12;
|
|
||||||
productID[2] = v14 & 0x000FFFFF;
|
|
||||||
productID[2] = calculateCheckDigit(productID[2]);
|
|
||||||
productID[3] = (v14 & 0x3FF00000) >> 20;
|
|
||||||
*version = buffer[0] & 7;
|
*version = buffer[0] & 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -940,12 +924,17 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_
|
|||||||
for (; *p; p++) {
|
for (; *p; p++) {
|
||||||
*p = toupper((unsigned char)*p);
|
*p = toupper((unsigned char)*p);
|
||||||
}
|
}
|
||||||
p = &channelid[0];
|
if (strcmp(&channelid[0], "OEM") == 0) {
|
||||||
if (strcmp(p, "OEM") == 0) {
|
productID[1] = stoi(productid.substr(12,3));
|
||||||
|
productID[2] = (stoi(productid.substr(15,1)) * 100000) + stoi(productid.substr(18,5));
|
||||||
|
productID[2] = calculateCheckDigit(productID[2]);
|
||||||
productID[3] = ((stoi(productid.substr(10,2))) * 1000) + productID[3];
|
productID[3] = ((stoi(productid.substr(10,2))) * 1000) + productID[3];
|
||||||
} else {
|
} else {
|
||||||
productID[3] = ((stoi(productid.substr(18,2))) * 1000) + productID[3];
|
productID[1] = stoi(productid.substr(6,3));
|
||||||
|
productID[2] = stoi(productid.substr(10,7));
|
||||||
|
productID[3] = stoi(productid.substr(18,5));
|
||||||
}
|
}
|
||||||
|
//fmt::print("ProductID: {}-{}-{}-{} \n", productID[0], productID[1], productID[2], productID[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char keybuf[16];
|
unsigned char keybuf[16];
|
||||||
|
Loading…
Reference in New Issue
Block a user