「IE のキャッシュのオフライン調査について (改訂版)」
http://www.slideshare.net/hebikuzure/iecachedata-20130427-20103419
昨日の第4回「ブラウザー勉強会」で発表した内容で、上に掲載したリンクで資料スライドも公開していますが、こちらでも簡単にまとめを書いておきます。
Inetrnet Explorer 9 以前
Internet Explorer 5 以降、Internet Explorer 9 までのバージョンでは、インターネット一時ファイル (キャッシュ、サーバーからダウンロードしたコンテンツを再利用のため一時保存したもの) の管理方法は同じでした。これはよく知られているように、以下のような仕組みです。
- インターネット オプションで表示される既定の一時ファイルの場所は以下のパス (Windows Vista 以降の場合)
%userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files - 実際の一時ファイルは既定では以下のフォルダに格納される(Windows Vista 以降の場合)
– 保護モード無効のキャッシュ
%userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5
– 保護モード有効のキャッシュ
%userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5 - Content.IE5 フォルダには以下が格納される
– index.dat
インデックスファイル
– キャッシュフォルダ
ランダムな英数8文字の名前のフォルダ
フォルダ内に一時ファイルの実データ ファイルを格納
一時ファイルのメタ データ(「インターネットアドレス」「有効期限日時」「最終変更日時」「最終アクセス日時」「最終チェック日時」など)は index.dat にバイナリ情報として保存される
(ただし一部の情報はテキストがそのまま格納されるので、index.dat から簡単に抽出できる)
IE9 までの index.dat はデータ構造非公開のバイナリ ファイルで、その内容へのデータ アクセスは WinInet API 経由でのみサポートされています。またデータ管理は WinInet が直接行っており、データベースとしてはあまり堅牢ではありませんでした (ご存知の方も多いように、よく壊れます)。
Internet Explorer 10
Internet Explorer 10 での一時ファイルの管理方法は以下の通りです。
- インターネット オプションで表示される既定の一時ファイルの場所は以下のパス (IE9 までと同じ)
%userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files - 実際の一時ファイルは既定では以下のフォルダに格納される(IE9 までと同じ)
– 保護モード無効のキャッシュ
%userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5
– 保護モード有効のキャッシュ
%userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5 - Content.IE5 フォルダには以下が格納される
– container.dat
キャッシュ管理に関する一時ファイル(?)、通常サイズ 0 バイト
– キャッシュフォルダ(IE9 までと同じ)
ランダムな英数8文字の名前のフォルダ
フォルダ内に一時ファイルの実データ ファイルを格納 - 一時ファイルの管理情報は以下の場所に保存される
%userprofile%\AppData\Local\Microsoft\Windows\WebCache
WebCache フォルダ(保護されたオペレーティング システムのフォルダになっています)を表示すると、以下のようになっています。
これらのファイルの中で一時ファイルのメタ データ(「インターネットアドレス」「有効期限日時」「最終変更日時」「最終アクセス日時」「最終チェック日時」など)を記録・管理しているのは、WebCacheV01.dat(環境によっては WebCacheV24.dat になる場合もあるようです)です。
WebCacheV01.dat(または WebCacheV24.dat)は Windows 内蔵のデータベース エンジンである Extensible Storage Engine のデータベースで、ここに IE9 まで index.dat で管理されていた情報が保存されています。Extensible Storage Engine は Jet Blue とも呼ばれるデータベース エンジンで、Windows では Exchange、 Active Directory、Desktop Search などのデータ管理で利用されています。Internet Explorer 10 では WinINET から Extensible Storage Engine が呼び出され、実際のキャッシュ情報の管理を行っています。
- Extensible Storage Engine (MSDN)
http://msdn.microsoft.com/en-us/library/windows/desktop/gg269259.aspx - Wikipedia
http://en.wikipedia.org/wiki/Extensible_Storage_Engine
管理方法は変更されていますが、index.dat と同様、WebCacheV01.dat(または WebCacheV24.dat)にも一時ファイルの URL やサーバー レスポンス ヘッダーなどの情報はテキストでそのまま保存されていますので、適切なツールを利用すれば抽出できるのも同じです。
IE9 までのキャッシュ関係のトラブルでは、別ユーザーでログオンするなどして Temporary Internet Files 以下のファイル/フォルダを削除する方法が有効でしたが、IE10 ではこれに加えて WebCache フォルダも初期化する必要があると考えられます。この辺りの動作についてはまだ未検証なので、いずれ調査したいと思います。
コメントを残す