Zveřejnil jsem zde příklad skriptu Python pro dekódování šifrovaných souborů cookie v OSX nebo Linuxu.
Komentáře jsou trochu matoucí, takže jen pro upřesnění, toto je zdroj chrómu v os_crypt_win.cc, takže můžete vidět, že to jen vkládá řetězec do blobu a spouští CryptUnprotectData()
bool OSCrypt::DecryptString(const std::string& ciphertext,
std::string* plaintext) {
DATA_BLOB input;
input.pbData = const_cast<BYTE*>(
reinterpret_cast<const BYTE*>(ciphertext.data()));
input.cbData = static_cast<DWORD>(ciphertext.length());
DATA_BLOB output;
BOOL result = CryptUnprotectData(&input, NULL, NULL, NULL, NULL,
0, &output);
if (!result)
return false;
plaintext->assign(reinterpret_cast<char*>(output.pbData), output.cbData);
LocalFree(output.pbData);
return true;
}
Také jsem na tom pracoval. Až dosud jsem zjistil, že Chrome (Windows) používá funkci CryptProtectData k šifrování hodnot svých souborů cookie. Stejná funkce, kterou používá k šifrování uložených hesel v souboru přihlašovacích údajů. CryptProtectData používá informace o uživatelském účtu a heslo přihlášeného uživatele systému Windows k šifrování dat. K jeho dešifrování musíme použít funkci CryptUnProtectData se stejným přihlášeným uživatelským účtem.
Zde je úryvek k dešifrování přihlašovacích údajů https://gist.github.com/jordan-wright/5770442
Pokud jde o Linux, četl jsem zde:http://www.linkedin.com/groups/Google-Chrome-encrypt-Stored-Cookies-36874.S.5826955428000456708
na jiných systémech se zdá, že zatemňuje hesla solí „saltysalt“ a heslem „peanuts“