Как я могу прочитать файлы Chrome Cache? - PullRequest
22 голосов
/ 26 мая 2011

Форум, который я часто посещаю, был закрыт сегодня, и после восстановления я обнаружил, что последние два дня публикации форума были полностью отменены.

Само собой разумеется, я хотел бы получить обратно те данные, которые я могу получить из-за потери форума, и я надеюсь, что у меня есть по крайней мере некоторые их, которые хранятся в файлах кэша, созданных Chrome. 1005 *

Я сталкиваюсь с двумя проблемами - файлы кеша не имеют тип файла, и я не уверен, как правильно их читать (попытка открыть их в самом Chrome, кажется, «перезагружать» их в формате .gz), и есть тонна файлов кэша.

Есть предложения о том, как читать и сортировать эти файлы? (Простой поиск строки должен соответствовать моим потребностям)

Ответы [ 10 ]

31 голосов
/ 04 ноября 2013

РЕДАКТИРОВАТЬ : приведенный ниже ответ больше не работает, см. здесь


В Chrome или Opera откройте новую вкладку и перейдите к chrome://view-http-cache/

Нажмите на любой файл, который вы хотите просмотреть. Затем вы должны увидеть страницу с кучей текста и цифр. Скопируйте весь текст на этой странице. Вставьте его в текстовое поле ниже.

Нажмите «Go». Кэшированные данные появятся в разделе «Результаты» ниже.

23 голосов
/ 26 мая 2011

Попробуйте Chrome Cache View от NirSoft (бесплатно).

9 голосов
/ 01 августа 2016

РЕДАКТИРОВАТЬ : приведенный ниже ответ больше не работает, см. здесь


Если файл, который вы пытаетесь восстановить, имеет Content-Encoding: gzip в разделе заголовка, и вы используете linux (или, как в моем случае, у вас установлен Cygwin), вы можете сделать следующее:

  1. посетите chrome://view-http-cache/ и нажмите на страницу, которую хотите восстановить
  2. скопировать последний (четвертый) раздел дословно страницы в текстовый файл (скажем: a.txt)
  3. xxd -r a.txt| gzip -d

Обратите внимание, что другие ответы предлагают передать параметр -p в xxd - у меня были проблемы с этим, предположительно, потому что четвертый раздел кэша не в "postscript plain hexdump style", а в "default style".

Также нет необходимости заменять двойные пробелы одним пробелом, как это делает chrome_xxd.py (в случае необходимости вы можете использовать sed 's/ / /g' для этого).

9 голосов
/ 24 июля 2015

РЕДАКТИРОВАТЬ : приведенный ниже ответ больше не работает, см. здесь


Chrome хранит кеш как шестнадцатеричный дамп. OSX поставляется с установленным xxd, который является инструментом командной строки для преобразования шестнадцатеричных дампов. Мне удалось восстановить jpg из HTTP-кэша Chrome на OSX, выполнив следующие действия:

  1. Перейти: chrome: // кеш
  2. Найдите файл, который вы хотите восстановить, и нажмите на его ссылку.
  3. Скопируйте 4-й раздел в буфер обмена. Это содержимое файла.
  4. Выполните шаги из этого списка, чтобы передать буфер обмена в скрипт python, который, в свою очередь, направляет xxd для восстановления файла из шестнадцатеричного дампа: https://gist.github.com/andychase/6513075

Ваша последняя команда должна выглядеть так:

pbpaste | python chrome_xxd.py | xxd -r - image.jpg

Если вы не уверены, какой раздел вывода кэша Chrome представляет собой шестнадцатеричный дамп содержимого, посмотрите хорошее руководство на этой странице: http://www.sparxeng.com/blog/wp-content/uploads/2013/03/chrome_cache_html_report.png

Источник изображения: http://www.sparxeng.com/blog/software/recovering-images-from-google-chrome-browser-cache

Больше информации о XXD: http://linuxcommand.org/man_pages/xxd1.html

Спасибо Матиасу Биненсу (Mathias Bynens) за то, что он направил меня в правильном направлении.

8 голосов
/ 08 марта 2017

Вы можете читать кэшированные файлы, используя только Chrome.

В Chrome есть функция Показать кнопку сохраненного копирования:

Показать кнопку сохраненного копирования Mac, Windows, Linux, Chrome OS, Android

Если страница не загружается, если в кэше браузера существует устаревшая копия страницы, будет представлена ​​кнопка, позволяющая пользователю загрузить эту устаревшую копию. Основной вариант включения ставит кнопку в наиболее заметное положение на странице ошибок; вторичный выбор разрешения ставит его вторично по отношению к кнопке перезагрузки. # Показать сохраняемую копию

Сначала отключитесь от Интернета, чтобы убедиться, что браузер не перезаписывает запись в кеше. Затем перейдите к chrome://flags/#show-saved-copy и установите значение флага Enable: Primary. После перезагрузки браузера Show Saved Copy Button будет включена. Теперь вставьте URI кэшированного файла в адресную строку браузера и нажмите Enter. Появится Chrome. Нет страницы подключения к Интернету, наряду с кнопкой Показать сохраненную копию: enter image description here

После нажатия кнопки в браузере отобразится кэшированный файл.

4 голосов
/ 21 марта 2019

Он был удален намеренно и больше не вернется.

Оба chrome://cache и chrome://view-http-cache были удалены начиная с Chrome 66. Они работают в версии 65.

Обходной путь

Вы можете проверить chrome://chrome-urls/ для получения полного списка внутренних URL-адресов Chrome.

Единственный обходной путь, который мне приходит в голову, - это использовать menu/more tools/developer tools и выбрать вкладку Network..

Причина, по которой он был удален, заключается в следующем:

Обсуждение:

3 голосов
/ 21 января 2017

Мне повезло с этим открытым Python-проектом, который, казалось бы, неактивен: https://github.com/JRBANCEL/Chromagnon

Я побежал:

python2 Chromagnon/chromagnonCache.py path/to/Chrome/Cache -o browsable_cache/

И я получил локально просматриваемый фрагмент всего моего кэша открытых вкладок.

2 голосов
/ 15 января 2017

Я сделал короткий глупый скрипт, который извлекает файлы JPG и 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");
        }
    }
 }
?>
0 голосов
/ 02 января 2019

РЕДАКТИРОВАТЬ : приведенный ниже ответ больше не работает, см. здесь


Описание формата файла кэша Google Chrome .

Список файлов кэша, см. URL-адреса (скопируйте и вставьте в адресную строку браузера):

  • chrome://cache/
  • chrome://view-http-cache/

Папка кэша в Linux: $~/.cache/google-chrome/Default/Cache

Определим в файле кодировку GZIP:

$ head f84358af102b1064_0 | hexdump -C | grep --before-context=100 --after-context=5 "1f 8b 08"

Извлечение файла кэша Chrome одной строкой в ​​PHP (без заголовка, блока CRC32 и блока ISIZE):

$ php -r "echo gzinflate(substr(strchr(file_get_contents('f84358af102b1064_0'), \"\x1f\x8b\x08\"), 10,
-8));"
0 голосов
/ 14 декабря 2018

Декомпилятор JPEXS Free Flash имеет код Java для этого на в дереве исходных текстов как для Chrome, так и для Firefox (хотя поддержка Firefox для более поздней версии cache2 отсутствует).

...