Refact. Delete check reg fingerprint (#7631)

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou 2024-04-06 22:58:42 +08:00 committed by GitHub
parent 0c294eefae
commit f36f065508
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -186,27 +186,33 @@ BOOL DeleteRustDeskTestCertsW_SingleHive(HKEY RootKey, LPWSTR Prefix = NULL) {
if ((res != ERROR_SUCCESS) || (SubKeyName == NULL)) if ((res != ERROR_SUCCESS) || (SubKeyName == NULL))
break; break;
// Remove test certificate // "佒呏..." key begins with "ROOT" encoded as UTF-16
LPWSTR Complete = (LPWSTR)malloc(512 * sizeof(WCHAR));
if (Complete == 0) break;
wsprintfW(Complete, L"%s\\%s\\Certificates\\%s", lpSystemCertificatesPath, SubKeyName, lpCertFingerPrint);
std::wcout << "Try delete from: " << SubKeyName << std::endl;
RegDelnodeW(RootKey, Complete, FALSE);
free(Complete);
if ((SubKeyName[0] == SubKeyPrefix[0]) && (SubKeyName[1] == SubKeyPrefix[1])) { if ((SubKeyName[0] == SubKeyPrefix[0]) && (SubKeyName[1] == SubKeyPrefix[1])) {
// "Chinese Characters" key begins with "ROOT" encoded as UTF-16 // Remove test certificate
LPWSTR Complete = (LPWSTR)malloc(512 * sizeof(WCHAR)); {
if (Complete == 0) break; LPWSTR Complete = (LPWSTR)malloc(512 * sizeof(WCHAR));
wsprintfW(Complete, L"%s\\%s", lpSystemCertificatesPath, SubKeyName); if (Complete == 0) break;
if (RegDelnodeW(RootKey, Complete, TRUE)) { wsprintfW(Complete, L"%s\\%s\\Certificates\\%s", lpSystemCertificatesPath, SubKeyName, lpCertFingerPrint);
//std::wcout << "Rogue Key Deleted! \"" << Complete << "\"" << std::endl; // TODO: Why does this break the console? // std::wcout << "Try delete from: " << SubKeyName << std::endl;
std::wcout << "Rogue key is deleted!" << std::endl; RegDelnodeW(RootKey, Complete, FALSE);
Index--; // Because index has moved due to the deletion free(Complete);
} else { }
std::wcout << "Rogue key deletion failed!" << std::endl;
// Remove wrong empty key store
{
LPWSTR Complete = (LPWSTR)malloc(512 * sizeof(WCHAR));
memset(Complete, 0, 512 * sizeof(WCHAR));
if (Complete == 0) break;
wsprintfW(Complete, L"%s\\%s", lpSystemCertificatesPath, SubKeyName);
if (RegDelnodeW(RootKey, Complete, TRUE)) {
//std::wcout << "Rogue Key Deleted! \"" << Complete << "\"" << std::endl; // TODO: Why does this break the console?
std::wcout << "Rogue key is deleted!" << std::endl;
Index--; // Because index has moved due to the deletion
} else {
std::wcout << "Rogue key deletion failed!" << std::endl;
}
free(Complete);
} }
free(Complete);
} }
free(SubKeyName); free(SubKeyName);