J'ai posté ici un exemple de script Python pour décoder les cookies chiffrés sous OSX ou Linux.
Les commentaires sont un peu déroutants, donc juste pour clarifier, c'est la source de chrome dans os_crypt_win.cc donc vous pouvez voir qu'il suffit de mettre la chaîne dans un blob et d'exécuter 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;
}
J'ai travaillé dessus aussi. Jusqu'à présent, j'ai découvert que Chrome (Windows) utilisait la fonction CryptProtectData pour crypter les valeurs de ses cookies. La même fonction qu'il a utilisée pour crypter les mots de passe enregistrés dans le fichier de données de connexion. CryptProtectData utilise les informations de compte d'utilisateur et le mot de passe de l'utilisateur Windows connecté pour chiffrer les données. Pour le déchiffrer, nous devons utiliser la fonction CryptUnProtectData avec le même compte utilisateur connecté.
Voici un extrait pour décrypter les données de connexionhttps://gist.github.com/jordan-wright/5770442
Maintenant concernant Linux, j'ai lu ici :http://www.linkedin.com/groups/Google-Chrome-encrypt-Stored-Cookies-36874.S.5826955428000456708
sur d'autres systèmes, il semble masquer les mots de passe avec le sel "saltysalt" et le mot de passe "peanuts"