如何阅读Chrome缓存文件?

Rav*_*mer 24 google-chrome browser-cache

我经常在今天讨论的一个论坛,在恢复后,我发现最后两天的论坛发帖已完全回滚.

毋庸置疑,我想从论坛中找回我可以丢失的数据,我希望我至少有一些数据存储在Chrome创建的缓存文件中.

我面临两个问题 - 缓存文件没有文件类型,我不确定如何以智能方式阅读它们(尝试在Chrome中打开它们似乎以.gz格式"重新下载"它们),并且有一的缓存文件.

有关如何阅读和排序这些文件的任何建议?(一个简单的字符串搜索应该符合我的需要)

A. *_*nis 31

编辑:以下答案不再适用于此处


在Chrome或Opera中,打开新标签页并导航至 chrome://view-http-cache/

单击要查看的文件.然后,您应该看到一个包含大量文本和数字的页面.复制该页面上的所有文本.将其粘贴在下面的文本框中.

按"开始".缓存的数据将显示在下面的"结果"部分中.

  • 你甚至没有提到你正在使用sensefulsolutions页面. (5认同)
  • 这将不再起作用,因为`chrome:// view-http-cache`已从最近的chrome版本中删除.有关详细信息,请参阅[this](https://superuser.com/questions/1316540/where-has-chrome-cache-been-moved-to). (5认同)
  • 或者只是将文件的hexdump复制到剪贴板,然后运行`pbpaste | xxd -r -p> file.ext`,将`pbpaste`替换为您的OS X实用程序的操作系统等效项. (2认同)

yak*_*atz 23

尝试NirSoft的Chrome缓存视图(免费).

  • 也适用于 Wine 下的 Mac。假设 `H:` 映射到您的主文件夹,主 Chrome 配置文件的文件夹将类似于 `H:\Library\Caches\Google\Chrome\Default\Cache`。 (3认同)
  • @Raven,我个人不认识那个人,但我已经使用了他的很多程序.你的杀毒软件具体说什么?有些人称之为黑客工具(即密码恢复) (2认同)
  • @Raven,我在其他站点上看不到有关此站点的类似评级:http://www.mywot.com/en/scorecard/nirsoft.net。Google SafeBrowsing(http://www.google.com/safebrowsing/diagnostic?site=nirsoft.net)表示该网站上包含木马,但这些都是假阳性(因为许多安全工具都显示为木马)。没有路过式下载,因此您还是很安全的。我确定该站点很好。正如我所说,我一直都在使用他的工具。 (2认同)
  • 该工具还可以在基于Wine的Ubuntu上使用。 (2认同)

k0n*_*0nG 9

Chrome将缓存存储为十六进制转储.OSX附带xxd安装,这是一个用于转换十六进制转储的命令行工具.我设法使用以下步骤从OSX上的Chrome的HTTP缓存中恢复jpg:

  1. 转到:chrome://缓存
  2. 找到要恢复的文件,然后单击其链接.
  3. 将第4部分复制到剪贴板.这是文件的内容.
  4. 按照这个要点上的步骤将剪贴板传递给python脚本,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巴纽

图片来源:http://www.sparxeng.com/blog/software/recovering-images-from-google-chrome-browser-cache

有关XXD的更多信息:http://linuxcommand.org/man_pages/xxd1.html

感谢上面的Mathias Bynens让我朝着正确的方向前进.

  • `chrome://cache` 在更高版本的 Chrome 中被删除,所以这将不再有效。 (2认同)

qbo*_*lec 9

如果您尝试恢复的文件Content-Encoding: gzip位于标题部分,并且您使用的是Linux(或者在我的情况下,您安装了Cygwin),则可以执行以下操作:

  1. 访问chrome:// view-http-cache /并单击要恢复的页面
  2. 将页面的最后(第四)部分逐字复制到文本文件(例如:a.txt)
  3. chrome://view-http-cache/

请注意,其他答案建议将xxd -r a.txt| gzip -d选项传递给-p- 我遇到了麻烦,大概是因为缓存的第四部分不在"postscript plain hexdump style"中,而是在"默认样式"中.

似乎没有必要用单个空格替换双空格,因为chrome_xxd.py正在执行(如果有必要,可以使用xxd它).


Leo*_*lev 8

您可以单独使用Chrome阅读缓存文件.

Chrome有一个名为Show Saved Copy Button的功能:

显示已保存的复制按钮 Mac,Windows,Linux,Chrome OS,Android

当页面加载失败时,如果浏览器缓存中存在页面的陈旧副本,则会显示一个按钮以允许用户加载该陈旧副本.主要启用选项将按钮置于错误页面上最显着的位置; 辅助启用选择将其置于重新加载按钮的辅助位置.#显示保存的拷贝

首先断开Internet连接以确保浏览器不会覆盖缓存条目.然后导航到chrome://flags/#show-saved-copy并将标志值设置为Enable: Primary.重新启动浏览器后显示已保存的复制按钮将被启用.现在将缓存的文件URI插入浏览器的地址栏并按Enter键.Chrome将显示"显示已保存的复制"按钮旁边没有Internet连接页面: 在此输入图像描述

点击按钮后,浏览器将显示缓存文件.


kyn*_*nan 7

Linux 上的Google Chrome 缓存目录$HOME/.cache/google-chrome/Default/Cache包含每个<16 char hex>_0“简单条目格式”命名的缓存条目一个文件:

  • 20 字节简单文件头
  • 键(即 URI)
  • 有效负载(原始文件内容,即本例中的 PDF)
  • 简单文件EOF记录
  • HTTP 标头
  • 密钥的 SHA256(可选)
  • 简单文件EOF记录

如果您知道要查找的文件的 URI,那么应该很容易找到它。如果没有,像域名这样的子字符串应该有助于缩小范围。在缓存中搜索 URI,如下所示:

fgrep -Rl '<URI>' $HOME/.cache/google-chrome/Default/Cache
Run Code Online (Sandbox Code Playgroud)

注意:如果您不使用默认的 Chrome 配置文件,请替换Default为配置文件名称,例如Profile 1


小智 5

我制作了一个简短的愚蠢脚本来提取 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");
        }
    }
 }
?>
Run Code Online (Sandbox Code Playgroud)