Ho pubblicato qui uno script Python di esempio per decodificare i cookie crittografati in OSX o Linux.
I commenti sono un po' confusi, quindi solo per chiarire, questa è la fonte di chromium in os_crypt_win.cc quindi puoi vedere che sta solo inserendo la stringa in un blob ed eseguendo 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;
}
Ci ho lavorato anch'io. Fino ad ora ho scoperto che Chrome (Windows) utilizza la funzione CryptProtectData per crittografare i valori dei cookie. La stessa funzione utilizzata per crittografare le password salvate nel file dei dati di accesso. CryptProtectData utilizza le informazioni sull'account utente e la password dell'utente Windows connesso per crittografare i dati. Per decifrarlo dobbiamo utilizzare la funzione CryptUnProtectData con lo stesso account utente connesso.
Ecco uno snippet per decrittografare i dati di accessohttps://gist.github.com/jordan-wright/5770442
Per quanto riguarda Linux, ho letto qui:http://www.linkedin.com/groups/Google-Chrome-encrypt-Stored-Cookies-36874.S.5826955428000456708
su altri sistemi sembra offuscare le password con il sale "saltysalt" e la password "peanuts"