Jak mogę odczytać pliki pamięci podręcznej Chrome?

Forum, które odwiedzałem było dzisiaj wyłączone, a po remoncie odkryłem, że ostatnie dwa dni postowania na forum zostały całkowicie cofnięte.

Nie trzeba dodawać, że chciałbym odzyskać jakie dane mogę z utraty forum, i mam nadzieję, że mam przynajmniej niektóre z nich zapisane w plikach cache, które stworzył Chrome.

Mam dwa problemy - pliki cache nie mają typu filetype i nie jestem pewien jak je odczytać w inteligentny sposób (próbując otworzyć je w samym Chrome wydaje się" redownload " je w .format gz), a istnieje ton plików pamięci podręcznej.

Jakieś sugestie jak czytać i sortować te pliki? (Proste wyszukiwanie ciągów powinno pasować do moich potrzeb)

Author: Raven Dreamer, 2011-05-26

12 answers

Wypróbuj Chrome Cache View z NirSoft (za darmo).

 25
Author: yakatz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-26 04:09:50

EDIT : odpowiedź poniżej już nie działa zobacz tutaj


W Chrome lub Operze otwórz nową kartę i przejdź do chrome://view-http-cache/

Kliknij plik, który chcesz wyświetlić. Następnie powinieneś zobaczyć stronę z kilkoma tekstami i liczbami. Skopiuj cały tekst na tej stronie. Wklej go w polu tekstowym poniżej.

Naciśnij "Go". Dane z pamięci podręcznej pojawią się w sekcji wyniki poniżej.

 32
Author: A. Zalonis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-31 23:45:46

EDIT : odpowiedź poniżej już nie działa zobacz tutaj


Chrome przechowuje pamięć podręczną jako zrzut szesnastkowy. OSX jest wyposażony w zainstalowany xxd, który jest narzędziem wiersza poleceń do konwersji zrzutów szesnastkowych. Udało mi się odzyskać jpg z pamięci podręcznej http Chrome na OSX, wykonując następujące kroki:
  1. Goto: chrome: / / cache
  2. Znajdź plik, który chcesz odzyskać i kliknij na jego link.
  3. Skopiuj 4 sekcję do schowka. To jest zawartość pliku.
  4. wykonaj kroki opisane w tym gist, aby przekierować swój schowek do skryptu Pythona, który z kolei przekieruje do xxd, aby odbudować Plik z Zrzutu szesnastkowego: https://gist.github.com/andychase/6513075

Twoje ostatnie polecenie powinno wyglądać następująco:

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

Jeśli nie masz pewności, która sekcja wyjścia pamięci podręcznej Chrome jest zrzutem szesnastkowym zawartości, zajrzyj na tę stronę, aby znaleźć dobry przewodnik: http://www.sparxeng.com/blog/wp-content/uploads/2013/03/chrome_cache_html_report.png

Źródło obrazu: http://www.sparxeng.com/blog/software/recovering-images-from-google-chrome-browser-cache

Więcej informacji o XXD: http://linuxcommand.org/man_pages/xxd1.html

Dziękuję mathiasowi Bynensowi za wysłanie mnie w dobrym kierunku.
 9
Author: k0nG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-24 02:55:14

EDIT : odpowiedź poniżej już nie działa zobacz tutaj


Jeśli plik, który próbujesz odzyskać, mA Content-Encoding: gzip w sekcji nagłówka i używasz Linuksa (lub jak w moim przypadku, masz zainstalowany Cygwin), możesz wykonać następujące czynności:

  1. odwiedź chrome://view-http-cache/ i kliknij stronę, którą chcesz odzyskać
  2. skopiuj ostatnią (czwartą) sekcję Strony dosłownie do pliku tekstowego (powiedzmy: a.txt)
  3. xxd -r a.txt| gzip -d

Zauważ, że inne odpowiedzi sugerują przejście -p opcja do xxd - miałem z tym problemy prawdopodobnie dlatego, że czwarta sekcja bufora nie jest w "stylu postscriptowego zwykłego zrzutu heksowego", ale w "domyślnym stylu".

Nie wydaje się też konieczne zastępowanie podwójnych spacji pojedynczą spacją, tak jak robi to chrome_xxd.py (w razie potrzeby można do tego użyć sed 's/ / /g').

 9
Author: qbolec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-24 02:56:29

Uwaga: flaga show-saved-copy została usunięta i poniższa odpowiedź nie będzie działać


Możesz odczytywać pliki w pamięci podręcznej za pomocą samego Chrome.

Chrome posiada funkcję o nazwie Show Saved Copy Button:

Pokaż przycisk zapisanej kopii Mac, Windows, Linux, Chrome OS, Android

Gdy strona nie ładuje się, jeśli w pamięci podręcznej przeglądarki istnieje stara Kopia strony, zostanie wyświetlony przycisk, aby umożliwić użytkownikowi załadowanie starej kopii. Podstawowy wybór umieszcza przycisk w najbardziej widocznej pozycji na stronie błędu; drugi wybór włączający powoduje, że jest on drugorzędny do przycisku przeładuj. # show-saved-copy

Najpierw rozłącz się z Internetem, aby upewnić się, że przeglądarka nie nadpisuje wpisu pamięci podręcznej. Następnie przejdź do chrome://flags/#show-saved-copy i ustaw wartość znacznika na Enable: Primary. Po ponownym uruchomieniu przeglądarki Pokaż zapisaną kopię przycisk będzie włączony. Teraz Wstaw buforowany URI pliku do paska adresu przeglądarki i naciśnij enter. Chrome wyświetli Brak połączenia z Internetem strona wraz z przyciskiem Pokaż zapisaną kopię: Tutaj wpisz opis obrazka

Po naciśnięciu przycisku przeglądarka wyświetli plik w pamięci podręcznej.

 8
Author: Leonid Vasilev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-05 23:55:53

Zrobiłem krótki głupi skrypt, który wyodrębnia pliki JPG i 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");
        }
    }
 }
?>
 4
Author: BeginnerForever,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-14 22:04:30

Miałem trochę szczęścia z tym open-source Pythonowym projektem, pozornie nieaktywnym: https://github.com/JRBANCEL/Chromagnon

Uciekłem:

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

I mam lokalnie przeglądane wyciąg z wszystkich moich otwartych kart pamięci podręcznej.

 4
Author: Lucas Cimon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-21 13:11:10

Został celowo usunięty i już nie wróci.

Zarówno chrome://cache jak i chrome://view-http-cache zostały usunięte począwszy od chrome 66. Działają one w wersji 65.

Obejście

Możesz sprawdzić chrome://chrome-urls/, aby uzyskać pełną listę wewnętrznych adresów URL Chrome.

Jedynym obejściem, które przychodzi mi do głowy, jest użycie menu/more tools/developer tools i wybranie karty Network.

Powodem, dla którego został usunięty jest to bug: {]}

Dyskusja:

 2
Author: Shabeer Sha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-24 02:41:58

Katalog pamięci podręcznej Google Chrome $HOME/.cache/google-chrome/Default/Cache w Linuksie zawiera jeden plik na wpis pamięci podręcznej o nazwie <16 char hex>_0 w "simple entry format":

  • 20 Bajtów SimpleFileHeader
  • Klucz (tj. URI)
  • payload (surowa zawartość pliku, czyli PDF w naszym przypadku)
  • Simplefileof record
  • nagłówki HTTP
  • SHA256 klucza (opcjonalnie)
  • Simplefileof record

Jeśli znasz URI pliku, którego szukasz, powinno być łatwo znaleźć. Jeśli nie, podłańcuch, taki jak nazwa domeny, powinien pomóc zawęzić go. Szukaj URI w pamięci podręcznej w następujący sposób:

fgrep -Rl '<URI>' $HOME/.cache/google-chrome/Default/Cache

Uwaga: jeśli nie używasz domyślnego profilu Chrome, zastąp Default nazwą profilu, np. Profile 1.

 2
Author: kynan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-06 00:35:04

Jpexs Free Flash Decompiler ma kod Java do tego celu w w drzewie źródłowym zarówno dla Chrome i Firefoksa(brak jednak wsparcia dla nowszego cache2 Firefoksa).

 0
Author: hemisphire,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-14 20:11:01

EDIT : odpowiedź poniżej już nie działa zobacz tutaj


Opis formatu pliku pamięci podręcznej Google Chrome .

Lista plików pamięci podręcznej, patrz adresy URL (Kopiuj i wklej do paska adresu przeglądarki):

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

Folder pamięci podręcznej w Linuksie: $~/.cache/google-chrome/Default/Cache

Ustalmy w pliku kodowanie GZIP:

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

Wyodrębnij plik pamięci podręcznej Chrome przez jedną linię w PHP (bez nagłówka, bloku CRC32 i ISIZE):

$ php -r "echo gzinflate(substr(strchr(file_get_contents('f84358af102b1064_0'), \"\x1f\x8b\x08\"), 10,
-8));"
 0
Author: Rinat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-24 02:56:02

Uwaga: poniższa odpowiedź jest nieaktualna, ponieważ zmienił się format pamięci podręcznej Chrome disk.


Joachim Metz dostarcza pewną dokumentację formatu pliku pamięci podręcznej Chrome z odniesieniami do dalszych informacji.

W moim przypadku użycia potrzebowałem tylko listy buforowanych adresów URL i ich odpowiednich znaczników czasu. Napisałem skrypt Pythona, aby je uzyskać, analizując pliki data_ * Pod C:\Users\me\AppData\Local\Google\Chrome\User Data\Default\Cache\:

import datetime
with open('data_1', 'rb') as datafile:
    data = datafile.read()

for ptr in range(len(data)):
    fourBytes = data[ptr : ptr + 4]
    if fourBytes == b'http':

        # Found the string 'http'. Hopefully this is a Cache Entry
        endUrl = data.index(b'\x00', ptr)
        urlBytes = data[ptr : endUrl]
        try:
            url = urlBytes.decode('utf-8')
        except:
            continue

        # Extract the corresponding timestamp
        try:
            timeBytes = data[ptr - 72 : ptr - 64]
            timeInt = int.from_bytes(timeBytes, byteorder='little')
            secondsSince1601 = timeInt / 1000000
            jan1601 = datetime.datetime(1601, 1, 1, 0, 0, 0)
            timeStamp = jan1601 + datetime.timedelta(seconds=secondsSince1601)
        except:
            continue

        print('{} {}'.format(str(timeStamp)[:19], url))
 0
Author: krubo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-05 23:47:50