From a7e97e45ee22f733dffb6ef7b792e6f8200ee0d2 Mon Sep 17 00:00:00 2001 From: pottzman Date: Thu, 7 Sep 2023 17:16:00 +1000 Subject: [PATCH 1/4] Update confid.cpp --- src/libumskt/confid/confid.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libumskt/confid/confid.cpp b/src/libumskt/confid/confid.cpp index e460aee..69605a5 100644 --- a/src/libumskt/confid/confid.cpp +++ b/src/libumskt/confid/confid.cpp @@ -940,8 +940,7 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_ for (; *p; p++) { *p = toupper((unsigned char)*p); } - p = &channelid[0]; - if (strcmp(p, "OEM") == 0) { + if (strcmp(&channelid[0], "OEM") == 0) { productID[3] = ((stoi(productid.substr(10,2))) * 1000) + productID[3]; } else { productID[3] = ((stoi(productid.substr(18,2))) * 1000) + productID[3]; From f3472313624fc5070ef45554631c0f40090dd60c Mon Sep 17 00:00:00 2001 From: pottzman Date: Thu, 7 Sep 2023 17:29:07 +1000 Subject: [PATCH 2/4] Update confid.cpp --- src/libumskt/confid/confid.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/libumskt/confid/confid.cpp b/src/libumskt/confid/confid.cpp index 69605a5..b4a4bc0 100644 --- a/src/libumskt/confid/confid.cpp +++ b/src/libumskt/confid/confid.cpp @@ -690,7 +690,7 @@ void ConfirmationID::decode_iid_new_version(unsigned char* iid, unsigned char* h QWORD hardwareIDVal = ((QWORD)v1 << 32) | v2; for (i = 0; i < 8; ++i) hwid[i] = (hardwareIDVal >> (8 * i)) & 0xFF; - DWORD v3 = ((buffer[0] & 0xFFFFFF80) >> 7) & 0xFFFFFFFF; + /*DWORD v3 = ((buffer[0] & 0xFFFFFF80) >> 7) & 0xFFFFFFFF; DWORD v4 = v3 & 0xFFFFF800; DWORD v5 = buffer[1] & 0x7F; DWORD v6 = buffer[1] >> 7; @@ -705,7 +705,7 @@ void ConfirmationID::decode_iid_new_version(unsigned char* iid, unsigned char* h DWORD v14 = v13 | v12; productID[2] = v14 & 0x000FFFFF; productID[2] = calculateCheckDigit(productID[2]); - productID[3] = (v14 & 0x3FF00000) >> 20; + productID[3] = (v14 & 0x3FF00000) >> 20;*/ *version = buffer[0] & 7; } @@ -941,10 +941,16 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_ *p = toupper((unsigned char)*p); } if (strcmp(&channelid[0], "OEM") == 0) { + productID[1] = stoi(productid.substr(12,3)); + productID[2] = (stoi(productid.substr(15,1)) * 1000000) + stoi(productid.substr(18,5)); + productID[2] = calculateCheckDigit(productID[2]); productID[3] = ((stoi(productid.substr(10,2))) * 1000) + productID[3]; } 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]; From 6c06732331a1ae674fe639b5635c18dc034dc132 Mon Sep 17 00:00:00 2001 From: pottzman Date: Thu, 7 Sep 2023 18:05:58 +1000 Subject: [PATCH 3/4] Update confid.cpp --- src/libumskt/confid/confid.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libumskt/confid/confid.cpp b/src/libumskt/confid/confid.cpp index b4a4bc0..5325ccd 100644 --- a/src/libumskt/confid/confid.cpp +++ b/src/libumskt/confid/confid.cpp @@ -942,7 +942,7 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_ } if (strcmp(&channelid[0], "OEM") == 0) { productID[1] = stoi(productid.substr(12,3)); - productID[2] = (stoi(productid.substr(15,1)) * 1000000) + stoi(productid.substr(18,5)); + 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]; } else { From 1d5e233c19fb9feddda6e8cf3088b6e311bc1d5e Mon Sep 17 00:00:00 2001 From: pottzman Date: Thu, 7 Sep 2023 18:44:47 +1000 Subject: [PATCH 4/4] Update confid.cpp --- src/libumskt/confid/confid.cpp | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/libumskt/confid/confid.cpp b/src/libumskt/confid/confid.cpp index 5325ccd..2eb6b42 100644 --- a/src/libumskt/confid/confid.cpp +++ b/src/libumskt/confid/confid.cpp @@ -690,22 +690,6 @@ void ConfirmationID::decode_iid_new_version(unsigned char* iid, unsigned char* h QWORD hardwareIDVal = ((QWORD)v1 << 32) | v2; for (i = 0; i < 8; ++i) 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; } @@ -950,7 +934,7 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_ 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]); + //fmt::print("ProductID: {}-{}-{}-{} \n", productID[0], productID[1], productID[2], productID[3]); } unsigned char keybuf[16];