Mac上でChromeのキャッシュからファイルを復元したい!
-
Windowsでは「ChromeCacheView」なんていう便利そうなツールがあるみたいだけれどもMacには対応していないみたいだったので、MacでChromeのキャッシュからファイルを復元する方法について調べてみた
-
Safariでもそうだけれども、MacではChromeの履歴やキャッシュはSQLiteでデータベース管理しているみたい
- SQLiteのデータベースにいちいちアクセスするのは面倒くさいなぁ...
-
試してみたところ、以下の手順でファイルの復元ができました (2015年11月現在)
- Chrome上でキャッシュの一覧を確認する
- まず、Chrome上で
chrome://cache
にアクセスすると、現在Chromeが保持しているキャッシュの一覧(URLのリスト)を表示することができます - この一覧の中から復元したいファイルが存在しているかを⌘ + Fで検索するなどして探してみてください
- キャッシュのバイナリ文字列を取得する
- 目的のファイルを示すURLが見つかったら、そのURLをクリックして開いてください
- URLを開くと、キャッシュについてのバイナリ情報が見れるページが表示されると思います
- このページは以下のような構造になっていると思います
キャッシュファイルのURL
(http://...)
--------------------------------------------------------------
HTTPレスポンスヘッダ
(HTTP/1.1 200 OK
Server: ...
Date: ...
... )
--------------------------------------------------------------
HTTPレスポンスヘッダのバイナリ
(00000000: 44 01 00 00 03 00 04 00 de 2f d5 da 3c 82 2e 00 D......../..<...
00000010: 46 6d d5 da 3c 82 2e 00 0f 01 00 00 48 54 54 50 Fm..<.......HTTP
00000020: 2f 31 2e 31 20 32 30 30 20 4f 4b 00 53 65 72 76 /1.1 200 OK.Serv
... )
--------------------------------------------------------------
HTTPレスポンスボディのバイナリ
(00000000: xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ................
00000010: xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ................
00000020: xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ................
... )
--------------------------------------------------------------
- このページの中で、ファイルの復元に必要となる部分はHTTPレスポンスボディのバイナリの中の、中間の列部分になります。(上の概略図の中で
xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
と書いた部分です) - この16進数のバイナリ文字列を取り出しましょう。(僕はウェブページ全体を⌘+Aで全範囲選択した後に⌘+Cでコピーし、vimに貼り付けてから矩形選択などを使って編集して取り出しました。)
- バイナリ文字列からバイナリデータを作成する
- 上の手順を行ってバイナリ文字列データを取り出したら、このバイナリ文字列をバイナリエディタに貼り付けましょう。
- Macで使えるバイナリエディタには0xEDやHexEditなどがありますが、僕は今回は0xEDを使いました。
- 0xEDが起動したらFile > New Fileで新規作成用のウィンドウを表示させてください。
- ウィンドウが開いたら、ウィンドウ中央部の入力エリアに先ほど取り出したバイナリ文字列をそのまま貼り付けてください。
- 貼り付けが終わると自動的にウィンドウの左側に00000や00001Fなどのように、その行の先頭がファイル中の何バイト目に対応するかの表示が現れるので、Chrome上で確認した時のHTTPレスポンスボディのバイナリと貼付け後のバイナリを見比べて正しく貼り付けられているかを確認してください
- この貼り付け処理が失敗しているとファイルは正しく復元できません
- 無事に貼り付けが完了したら、ウィンドウ左上のSaveボタンをクリックしましょう。
- ファイル名の入力を求められるので、ファイル名を拡張子も指定して入力して保存してください。
-
お疲れ様でした。これで保存したファイルが無事に普通のファイルとして開けるようなら復元完了となります!
-
でも、どのみち手順が多くて面倒くさいな...