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)
12 answers
Wypróbuj Chrome Cache View z NirSoft (za darmo).
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.
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:
- Goto: chrome: / / cache
- Znajdź plik, który chcesz odzyskać i kliknij na jego link.
- Skopiuj 4 sekcję do schowka. To jest zawartość pliku.
- 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-cacheWięcej informacji o XXD: http://linuxcommand.org/man_pages/xxd1.html
Dziękuję mathiasowi Bynensowi za wysłanie mnie w dobrym kierunku.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:
- odwiedź
chrome://view-http-cache/
i kliknij stronę, którą chcesz odzyskać - skopiuj ostatnią (czwartą) sekcję Strony dosłownie do pliku tekstowego (powiedzmy: a.txt)
-
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'
).
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ę:
Po naciśnięciu przycisku przeglądarka wyświetli plik w pamięci podręcznej.
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");
}
}
}
?>
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.
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: {]}
- https://chromium.googlesource.com/chromium/src.git/+/6ebc11f6f6d112e4cca5251d4c0203e18cd79adc
-
https://bugs.chromium.org/p/chromium/issues/detail?id=811956
Dyskusja:
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
.
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).
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));"
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))
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