web-dev-qa-db-fra.com

Comment lire les fichiers Chrome Cache?

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)

21
Raven Dreamer

Essayez Chrome Cache View de NirSoft (gratuit).

20
yakatz

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.

31
A. Zalonis

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:

  1. Goto: chrome: // cache
  2. Trouvez le fichier que vous voulez récupérer et cliquez sur son lien.
  3. Copiez la 4ème section dans votre presse-papiers. Ceci est le contenu du fichier. 
  4. Suivez les étapes de cet Gist pour diriger votre presse-papiers vers le script python qui redirige ensuite le fichier à xxd pour reconstruire le fichier à partir du vidage hexadécimal: https://Gist.github.com/andychase/6513075

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.

9
k0nG

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:

  1. visitez chrome: // view-http-cache/et cliquez sur la page que vous souhaitez récupérer
  2. copier la dernière (quatrième) section de la page dans un fichier texte (par exemple: a.txt)
  3. 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).

8
qbolec

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:  enter image description here

Après avoir cliqué sur le bouton, le navigateur affichera le fichier en cache.

7
Leonid Vasilev

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.

3
Lucas Cimon

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");
        }
    }
 }
?>
2
BeginnerForever

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));"

0
Rin Nas

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).

0
hemisphire