Un forum que je fréquente était en panne aujourd'hui et, après restauration, j'ai découvert que les deux derniers jours d'affichage sur le forum avaient été totalement annulés.
Inutile de dire que je voudrais récupérer les données que je peux de la perte du forum, et j'espère avoir au moins certaines stockées dans les fichiers de cache créés par Chrome.
Je suis confronté à deux problèmes: les fichiers de cache n'ont pas de type de fichier et je ne sais pas comment les lire de manière intelligente (essayer de les ouvrir dans Chrome lui-même semble les "télécharger à nouveau" au format .gz). un ton de fichiers cache.
Des suggestions sur la façon de lire et de trier ces fichiers? (Une simple recherche de chaîne devrait répondre à mes besoins)
Essayez Chrome Cache View de NirSoft (gratuit).
EDIT: La réponse ci-dessous ne fonctionne plus voir ici
Dans Chrome ou Opera, ouvrez un nouvel onglet et accédez à chrome://view-http-cache/
.
Cliquez sur le fichier que vous voulez voir . Vous devriez alors voir une page avec un tas de texte et des chiffres . Copier tout le texte sur cette page . Collez-le dans la zone de texte ci-dessous.
Appuyez sur "Go" . Les données en cache apparaîtront dans la section Résultats ci-dessous.
Chrome stocke le cache sous forme de vidage hexadécimal. La version xxd
est fournie avec OSX. Il s’agit d’un outil de ligne de commande permettant de convertir les vidages hexadécimaux. J'ai réussi à récupérer un jpg du cache HTTP de mon Chrome sous OSX en procédant comme suit:
Votre commande finale devrait ressembler à:
pbpaste | python chrome_xxd.py | xxd -r - image.jpg
Si vous ne savez pas quelle section de la sortie du cache de Chrome contient le vidage hexadécimal de contenu, consultez cette page pour en savoir plus: http://www.sparxeng.com/blog/wp-content/uploads/ 2013/03/chrome_cache_html_report.png
Source de l'image: http://www.sparxeng.com/blog/software/recovering-images-from-google-chrome-browser-cache
Plus d'infos sur XXD: http://linuxcommand.org/man_pages/xxd1.html
Merci à Mathias Bynens ci-dessus pour m'avoir envoyé dans la bonne direction.
Si le fichier que vous essayez de récupérer a Content-Encoding: gzip
dans la section d'en-tête et que vous utilisez linux (ou, comme dans mon cas, Cygwin est installé sur votre ordinateur), vous pouvez procéder comme suit:
xxd -r a.txt| gzip -d
Notez que d'autres réponses suggèrent de passer l'option -p
à xxd
. J'avais des problèmes avec cela, probablement parce que la quatrième section du cache n'était pas dans le "style postscript plain hexdump" mais dans un "style par défaut".
Il ne semble pas non plus nécessaire de remplacer les espaces doubles par un espace unique, comme le fait chrome_xxd.py (au cas où vous en auriez besoin, vous pouvez utiliser sed 's/ / /g'
pour cela).
Vous pouvez lire les fichiers en cache en utilisant uniquement Chrome.
Chrome dispose d'une fonctionnalité appelée Afficher le bouton de copie enregistrée:
Afficher le bouton Copie enregistrée Mac, Windows, Linux, Chrome OS, Android
En cas d'échec du chargement d'une page, si une copie obsolète de la page existe dans la mémoire cache du navigateur, un bouton apparaît pour permettre à l'utilisateur de charger cette copie obsolète. Le choix d'activation principal place le bouton dans la position la plus saillante sur la page d'erreur; le choix d'activation secondaire le met secondaire au bouton de rechargement. # show-saved-copy
Commencez par vous déconnecter d'Internet pour vous assurer que ce navigateur n'écrase pas l'entrée du cache. Accédez ensuite à chrome://flags/#show-saved-copy
et définissez la valeur de l'indicateur sur Enable: Primary
. Après avoir redémarré le navigateur, le bouton Afficher la copie enregistrée sera activé. Maintenant, insérez l'URI du fichier en cache dans la barre d'adresse du navigateur et appuyez sur Entrée. Chrome affichera Il n'y a pas de page de connexion Internet à côté du bouton Afficher la copie enregistrée:
Après avoir cliqué sur le bouton, le navigateur affichera le fichier en cache.
J'ai eu un peu de chance avec ce projet Python open source, apparemment inactif: https://github.com/JRBANCEL/Chromagnon
Iran:
python2 Chromagnon/chromagnonCache.py path/to/Chrome/Cache -o browsable_cache/
Et j'ai obtenu un extrait de tout le cache des onglets ouverts, à parcourir localement.
J'ai créé un court script stupide qui extrait des fichiers JPG et PNG:
#!/usr/bin/php
<?php
$dir="/home/user/.cache/chromium/Default/Cache/";//Chrome or chromium cache folder.
$ppl="/home/user/Desktop/temporary/"; // Place for extracted files
$list=scandir($dir);
foreach ($list as $filename)
{
if (is_file($dir.$filename))
{
$cont=file_get_contents($dir.$filename);
if (strstr($cont,'JFIF'))
{
echo ($filename." JPEG \n");
$start=(strpos($cont,"JFIF",0)-6);
$end=strpos($cont,"HTTP/1.1 200 OK",0);
$cont=substr($cont,$start,$end-6);
$wholename=$ppl.$filename.".jpg";
file_put_contents($wholename,$cont);
echo("Saving :".$wholename." \n" );
}
elseif (strstr($cont,"\211PNG"))
{
echo ($filename." PNG \n");
$start=(strpos($cont,"PNG",0)-1);
$end=strpos($cont,"HTTP/1.1 200 OK",0);
$cont=substr($cont,$start,$end-1);
$wholename=$ppl.$filename.".png";
file_put_contents($wholename,$cont);
echo("Saving :".$wholename." \n" );
}
else
{
echo ($filename." UNKNOWN \n");
}
}
}
?>
Description du format de fichier de cache Google Chrome .
Liste des fichiers de cache, voir URL (copier et coller dans la barre d'adresse de votre navigateur): chrome://cache/
ou chrome://view
-http-cache/
Dossier de cache sous Linux: $~/.cache/google-chrome/Default/Cache
Déterminons dans le fichier GZIP encoding:
$ head f84358af102b1064_0 | hexdump -C | grep --before-context=100 --after-context=5 "1f 8b 08"
Extrayez le fichier cache de Chrome d'une ligne sur PHP (sans en-tête, bloc CRC32 et ISIZE):
$ php -r "echo gzinflate(substr(strchr(file_get_contents('f84358af102b1064_0'), \"\x1f\x8b\x08\"), 10,
-8));"
Le JPEXS Free Flash Decompiler a du code Java pour le faire sur dans l’arborescence des sources pour Chrome et Firefox (pas de prise en charge du cache2 plus récent de Firefox cependant).