Как дешифровать пароли/куки с chrome?
ChatGPT говорит, что bcrypt не годится для AESGCM (поэтому от него я не добился знаний), я пробовал как раз с bcrypt, но что-то видимо написал не правильно и работать это не хочет
std::string AESDecrypter(std::string encryptedDataStr, const std::vector<BYTE>& key){
std::vector<BYTE> encryptedData(encryptedDataStr.begin(), encryptedDataStr.end());
std::vector<BYTE> decryptedData;
BCRYPT_ALG_HANDLE hAlgorithm = NULL;
BCRYPT_KEY_HANDLE hKey = NULL;
BCryptOpenAlgorithmProvider(&hAlgorithm, BCRYPT_AES_ALGORITHM, NULL, 0);
BCryptSetProperty(hAlgorithm, BCRYPT_CHAINING_MODE, (UCHAR*)BCRYPT_CHAIN_MODE_GCM, sizeof(BCRYPT_CHAIN_MODE_GCM), 0);
// Создание ключа
BCryptGenerateSymmetricKey(hAlgorithm, &hKey, NULL, 0, const_cast<PUCHAR>(key.data()), key.size(), 0);
// Дешифрование данных
DWORD decryptedDataSize = static_cast<DWORD>(encryptedData.size());
decryptedData.resize(decryptedDataSize);
ULONG bytesDecrypted = 0;
BCryptDecrypt(hKey, const_cast<PUCHAR>(encryptedData.data()), decryptedDataSize, NULL, NULL, 0, decryptedData.data(), decryptedData.size(), &bytesDecrypted, 0);
decryptedData.resize(bytesDecrypted);
BCryptDestroyKey(hKey);
BCryptCloseAlgorithmProvider(hAlgorithm, 0);
return std::string(decryptedData.begin(), decryptedData.end());
}
Я так и не понял как устроен вектор инициализации и тонкости bcrypt decrypt aesgcm, прошу помочь в объяснении этих моментов и объяснении ошибок кода
Ответы (1 шт):
Автор решения: eri
→ Ссылка
В хранилище паролей пользователя ( в виндовс через панель управления) лежит ключ шифрования. Если хранилище не доступно, то там константа. Не помню какая(посмотри в исходнихах хромиума).