4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Firefox の cache を読み解く

Posted at

##環境
Firefox 65.0

##目的
Firefox のキャッシュがどういう形式で PC に保存されているかを書いておきます。Firefox のバージョンによってキャッシュの構造も結構変わってるので、あくまでも現状(2019年3月現在)の情報です。

##保存場所
about:cacheで確認できます。

##index
cache2 ディレクトリの直下に index ファイルがあります。キャッシュの索引を管理するためのファイルのようです。最初の 12bytes がヘッダになっています。

↓ヘッダの構造

Offset Size Type Description
0 4 BE Integer Version
4 4 BE Unix Date Last Modified
8 4 - Dirty Flag
index.png

ヘッダの後は 44bytes 毎に個々のキャッシュの情報が保存されています。最初の 20bytes が Key(:URL) の SHA1 ハッシュ値で、その後の 24bytes に色んな情報が保存されています。(それぞれどういったパラメータなのかはよく分かりません😓)

Size Type Description
20 SHA1Sum Hash of Key
4 BE Integer Frecency
8 - Origin Attrs Hash?
4 BE Unix Date Expiration Date
2 - On Start Time?
2 - On Stop Time?
4 - Flags
index2.png
↑ 以下 44bytes 毎に同じ構造の繰り返しになってます。

##entries
entriers フォルダにキャッシュのデータが保存されています。URL の SHA1 ハッシュ値がファイル名となっていて、.jpg とか .css とか生データがそのまま保存されているわけではないです。構造としては下記のように生データの後に色々なメタデータ(最終更新日時、HTTP ヘッダ、データサイズなどなど)とともに保存されています。こちらもバージョンによって結構構造が変わっていて、解析するときにはバージョンチェックが必須です。

Size Type Description
[Data Size] - Raw Data
4+([Data Size]/262144+1)*2 - Hash + Chunk Hash
4 BE Integer Version
4 BE Integer Fetch Count
4 BE Unix Date Last Fetched Date
4 BE Unix Date Last Modified Date
4 BE Integer Frecency
4 BE Unix Date Expiration Date
4 BE Integer Key Length
4 - Flags
[Key Length] String :URI
(Optional) - (HTTP Header, etc...)
4 BE Integer Data Size

##参考
cache2 - DXR
Firefox Cache2 Storage Breakdown←ちょっと情報が古い

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?