Mac の Safari のキャッシュから画像その他を取り出すメモ
(以下の内容は Safari 8.0.6 現在のもの)
~/Library/Caches/com.apple.Safari/fsCachedData
に blob が保存されている。 file
コマンドで画像かどうか判別して適当に拡張子をつけてやれば復元できる。
% file fsCachedData/000DFAD8-B02E-47A2-AFA0-36D985C47D20 (略)/000DFAD8-B02E-47A2-AFA0-36D985C47D20: PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced
Finder で blob ファイルを選ぶと上手いことプレビューしてくれるのでそれでもいい。
その他レスポンスデータなどは ~/Library/Caches/com.apple.Safari/Cache.db
に記録されている。これはただの SQLite3 データベースファイル。 BLOB カラムには binary plist らしきものが入っている。
% sqlite3 Cache.db 'SELECT * FROM cfurl_cache_schema_version;' 104 % sqlite3 Cache.db .schema CREATE TABLE cfurl_cache_schema_version(schema_version INTEGER); CREATE TABLE cfurl_cache_response(entry_ID INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, version INTEGER, hash_value INTEGER, storage_policy INTEGER, request_key TEXT UNIQUE, time_stamp NOT NULL DEFAULT CURRENT_TIMESTAMP, partition TEXT); CREATE TABLE cfurl_cache_blob_data(entry_ID INTEGER PRIMARY KEY, response_object BLOB, request_object BLOB, proto_props BLOB, user_info BLOB); CREATE TABLE cfurl_cache_receiver_data(entry_ID INTEGER PRIMARY KEY, isDataOnFS INTEGER, receiver_data BLOB); CREATE INDEX request_key_index ON cfurl_cache_response(request_key); CREATE INDEX time_stamp_index ON cfurl_cache_response(time_stamp); CREATE INDEX proto_props_index ON cfurl_cache_blob_data(entry_ID); CREATE INDEX receiver_data_index ON cfurl_cache_receiver_data(entry_ID);
cfurl_cache_response.request_key
は URL の文字列。ただし末尾に '[' + request_host + ']'
が付属している場合がある。
cfurl_cache_receiver_data.receiver_data
は UUID の文字列(大文字ハイフン区切りの形式)。 fsCachedData ディレクトリに UUID を名前とするバイナリファイルが格納されている。