Utiliser le cache de Chrome/Firefox pour restaurer un fichier

J’ai récemment eu le malheur de perdre un fichier sur lequel je travaillais. Je n’avais conservé aucune copie récente de celui-ci et bien évidement je ne l’avais pas versionné. Vu que c’était un fichier javascript, j’ai eu l’idée de le récupérer via le cache de mon navigateur internet. Je vais vous expliquer la marche à suivre.

Dans un premier temps, ouvrez Google Chrome ou Mozilla Firefox et saisissez dans la barre d’adresse about:cache. Cette page liste tous les fichiers que le navigateur possède dans son cache. Croisez les droits en espérant ne pas l’avoir effacé ou rafraîchi manuellement. La boite de recherche devrait vous permettre de retrouver le fichier rapidement.

Quand on clique dessus, on peut se rendre compte que Chrome ne l’affiche pas. A la place il nous montre les données brut de la trame HTTP. Si vous avez déjà travaillé avec Wireshark vous ne serez pas perdu.

La partie « contenu » de la trame est sous une forme binaire. Elle n’est donc pas exploitable telle quelle.
Dans le cas où la transaction avec le serveur web est compressée, il faudra également la dézipper.

Le script que j’ai trouvé sur le blog de Frozax résout très bien la problématique.

<?php
// cache.log is a copy of chrome cache page with only the file content section
$cacheString = file_get_contents("cache.log");
$matches = array();
preg_match_all('/\s[0-9a-f]{2}\s/', $cacheString, $matches);
$f = fopen("t.bin","wb");
foreach ($matches[0] as $match)
{
  fwrite($f,chr(hexdec($match)));
}
fclose($f);
 
ob_start();
readgzfile("t.bin");
$decoded_data=ob_get_clean();
echo $decoded_data;
?>

Pour l’utiliser, il suffit de copier la partie « File content » de la trame dans un fichier nommé cache.log, d’éxecuter le script php et votre fichier sera restauré.


sources: http://www.frozax.com/blog/2011/05/recover-file-google-chrome-cache-gzipped/

Articles similaires :

Mots-clefs : , , , ,

8 commentaires sur “Utiliser le cache de Chrome/Firefox pour restaurer un fichier”

  1. Matinick dit :

    Super ce script !!!
    J’ai pu récupérer régénérer un .swf et un .flv avec succès.
    Merci

  2. Chabinal dit :

    Bonjour,

    Je voudrais juste savoir où trouver le fichier cache.log

    Merci de votre réponse rapide c urgent

    Chabinal

    • bugz dit :

      Le fichier cache.log, c’est à toi de le créer.
      Il faut copier-coller la partie « File Content » de la trame HTTP dans le fichier.

      • kouldz dit :

        Bjr,
        comment creer ce fichier svp ?
        un document txt ?
        et puis ou coller le script par rapport au content ?
        a la fin, il faudra faire quoi ? si c’est document pdf par exemple ?
        Ce serai bien de donner un exemple pour le novices svp !
        merci

        • bugz dit :

          Il est vrai que cet article était plutôt destiné à un développeur.
          Si tu ne sais pas comment exécuter un fichier php, il faudrait commencer par là. Donc installer un interpréteur php, familiarise toi avec la ligne de commande.
          Un fichier pdf, txt, html, ou n’importe qu’elle extension c’est d’abord un fichier, il suffit de changer l’extension pour que ton OS sache comment l’ouvrir mais les données à l’intérieur sont les mêmes.

          Donc pour résumer avec un bloc note tu crée un fichier que tu peux nommer « scriptmagic.php » tu colles le code php que j’ai mis dans l’article.
          Tu crée dans le même répertoire un fichier « cache.log » et dedans tu colles la partie content de la trame.
          Tu ouvres la ligne de commande et tu te déplace vers ton répertoire, tu tapes « php scriptmagic.php > monjoliefichierretrouve.pdf » .
          Un fichier nommé monjoliefichierretrouve.pdf apparaitra comme par magie.

  3. fg dit :

    Bonjour,
    j’ai perdu un fichier .css sur le site sur lequel je travaille que j’ai heureusement pu recuperer grace au cache Chrome/

    Malheureusmeent je suis un peu novice avec la méthode que vous employiez mais c’est celle dont j’ai besoin…

    Où dois-je aller pour faire executer le script que vous fournissez?
    Dois je, pour le fichier cache.log, copier/coller du cache de chrome tous ce qu’il y a en dessous de la présentation du fichier?

    Merci d’avance !!

  4. Sezn dit :

    Ca c’est trop coool!
    Big thanks à toi et Mr Frozax!
    Je cherchai à récup du cache du css écrasé, et c’est plutôt sympa à se rappeler et garder sur un server ça! :)

Laisser une réponse