Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Iecachedata 20130427

13,197 views

Published on

2013年4月27日「ブラウザー勉強会」のセッション スライドです。
Internet Explorer 10 のインターネット一時ファイルをオフライン解析する方法について調査した結果です。

Published in: Technology
  • Be the first to comment

Iecachedata 20130427

  1. 1. IE のキャッシュのオフライン調査について(改訂版)村地 彰 aka hebikuzure
  2. 2. この発表について• この発表は2012年7月21日開催の「まっちゃ445勉強会 目覚ましの会」で発表した内容に、Windows 8 および InternetExplorer 10 における調査結果を追加したものです• 内容については発表者が個人として調査して者であり、特定の会社・団体の見解ではありません
  3. 3. Internet Explorer のキャッシュここ
  4. 4. ファイルを表示させると
  5. 5. 実体は…Windows Vista 以降の場合• 保護モード無効のキャッシュ%userprofile%¥AppData¥Local¥Microsoft¥Windows¥Temporary Internet FilesContent.IE5• 保護モード有効のキャッシュ%userprofile%¥AppData¥Local¥Microsoft¥Windows¥Temporary Internet FilesLowContent.IE5
  6. 6. なぜ Content.IE5 ??• Internet Explorer のキャッシュ データ構造は IE5 から変わっていなかった•IE5 ???•13年間不変のテクノロジー(^_^.)
  7. 7. 実は…..• Internet Explorer 10 ではキャッシュのシステムが変更されています• 14年間ご苦労様でした• とはいえ、IE9 以前のシステムも多いので、まず古いシステムの話から…
  8. 8. Content.IE5 の中身• index.dat– インデックスファイル• キャッシュ フォルダ– ランダムな英数8文字の名前のフォルダ– フォルダ内の一時ファイルの実データ ファイルを格納旧
  9. 9. こんな感じ 旧
  10. 10. さらにフォルダ内を見る 旧
  11. 11. キャッシュの情報はどこ?• 実データ ファイル–ダウンロードされたコンテンツ そのものがファイルとして保存されている• Temporary Internet Files には「インターネット アドレス」「有効期限日時」「最終変更日時」「最終アクセス日時」「最終チェック日時」などが表示される–これらの情報はどこに??旧
  12. 12. 情報は index.dat にある• index.dat–バイナリ ファイル–データ構造は非公開–データにアクセスする API (WinInetAPI) が公開されている中身が見たい旧
  13. 13. 注意事項• ログオンしているユーザーの index.dat はシステム プロセスがロックしているので普通には開けない• 不用意に書き換えるとキャッシュが壊れて不具合が生じる• 別のユーザーでログオンするか、別のシステムでブートして、index.dat をコピーしてから開く旧
  14. 14. バイナリ エディタで開く何か見える旧
  15. 15. 中身を確認シグネチャフォルダ名旧
  16. 16. さらに確認何か出たアドレス?ヘッダー?旧
  17. 17. 分かる事• index.dat はバイナリ情報が含まれているが、テキストがそのまま記録されている部分もある• 基本的な情報はテキストを抽出するだけでも取得できる (strings とか)旧
  18. 18. 詳しい人いた~\(◎o◎)/!• この人• The INDEX.DAT File Formathttp://www.geoffchappell.com/studies/windows/ie/wininet/api/urlcache/indexdat.htm旧
  19. 19. The INDEX.DAT File Format• index.dat のファイル構造を解析して公開しています• 某中の人によれば、ここに書いてある内容は「正しいと考えられる」だそうです• 実際に採取した index.dat は、この解析結果の通りの構造でした• と言う事で、キャッシュの静的解析をするなら必読旧
  20. 20. 同じような解析情報• Internet Explorer History File Formathttp://www.forensicswiki.org/wiki/Internet_Explorer_History_File_Format• MSIE Cache File (index.dat) format.pdfhttp://sourceforge.net/projects/libmsiecf/files/Documentation/MSIE%20Cache%20File%20format/旧
  21. 21. その他の参考情報• A bit about WinInets Index.dathttp://blogs.msdn.com/b/wndp/archive/2006/08/04/wininet-index-dat.aspx• A bit about WinInets Index.dat – Q&Ahttp://blogs.msdn.com/b/wndp/archive/2006/08/07/wininet-index-dat-q-and-a.aspx旧
  22. 22. つづき• Internet Explorer 一時ファイルが肥大化するhttp://blogs.technet.com/b/jpieblog/archive/2011/09/09/3452071.aspx旧
  23. 23. さらにこんなツールも…• Index Dat Spyhttp://www.stevengould.org/index.php?option=com_content&task=view&id=47&Itemid=88• Index.dat Viewerhttp://www.acesoft.net/index.dat%20viewer/index.dat_viewer.htm• libmsiecfhttp://sourceforge.net/projects/libmsiecf/旧
  24. 24. では IE10 では……
  25. 25. IE9 以前との比較• index.dat がない• container.dat という怪しげなファイルがあるが、サイズが 0 バイト• ランダムな英数8文字の名前のフォルダは健在
  26. 26. フォルダ内を見る
  27. 27. フォルダ内のファイル• キャッシュ(一時ファイル)の実体• IE9 以前と同様、ダウンロードされたコンテンツがそのままファイルとして保存されている• では「インターネット アドレス」「有効期限日時」「最終変更日時」「最終アクセス日時」「最終チェック日時」などの情報はどこに??
  28. 28. procmon で調べる• procmon.exe (Process Monitor)–http://technet.microsoft.com/ja-jp/sysinternals/bb896645.aspx• プロセスが行った処理 (ファイル システム、レジストリ、プロセスおよびスレッドの活動) をリアルタイムで表示し、ログを採取できるツール
  29. 29. こんなログがある
  30. 30. ログの詳細• 17:12:28.8842513• taskhostex.exe• 1156• QueryBasicInformationFile• C:¥Users¥hebik_000¥AppData¥Local¥Microsoft¥Windows¥Temporary InternetFiles¥Low¥Content.IE5¥container.dat• SUCCESS
  31. 31. taskhostex.exe のスタック
  32. 32. ログとスタックからわかること• taskhostex.exe は wininet.dll のSetUrlCacheEntryInfoA を呼び出している• そのアクセス対象は%userprofile%¥AppData¥Local¥Microsoft¥Windows¥Temporary InternetFiles¥Low¥Content.IE5¥container.dat• taskhostex.exe がキャッシュ管理に関係しているらしい
  33. 33. taskhostex.exe をさらに調べる• 17:12:28.8848751• taskhostex.exe• 1156• QueryDirectory• C:¥Users¥hebik_000¥AppData¥Local¥Microsoft¥Windows¥WebCache¥WebCacheV01.dat• SUCCESS
  34. 34. この時のスタック
  35. 35. ログとスタックから• taskhostex.exe は wininet.dll のSetUrlCacheEntryInfoA を呼び出している• さらに ESENT.dll JetCloseDatabase が呼び出されている• そのアクセス対象は%userprofile%¥AppData¥Local¥Microsoft¥Windows¥WebCache¥WebCacheV01.dat
  36. 36. これって何?
  37. 37. Extensible Storage Engine• JET Blue とも呼ばれる Windows 内蔵のISAM データベース エンジン• Exchange, Active Directory, DesktopSearch などで利用されている–http://msdn.microsoft.com/en-us/library/windows/desktop/gg269259.aspx–http://en.wikipedia.org/wiki/Extensible_Storage_Engine
  38. 38. さらに調べると• taskhostex.exe (ESENT.dll ) はWebCacheV01.dat に READ / WRITE を繰り返している• いずれも wininet.dll のキャッシュ関連API を経由している
  39. 39. WebCache フォルダを見る
  40. 40. ファイルを見てみる• WebCacheV01.dat と V01.log はロックされていてログイン中は開けない• 別ユーザーでログオンすれば取り扱える
  41. 41. V01.log
  42. 42. WebCacheV01.dat
  43. 43. ここまででわかった事• Internet Explorer 10 ではキャッシュの管理に Extensible Storage Engine が利用されている• キャッシュに関するデータベースは%userprofile%¥AppData¥Local¥Microsoft¥Windows¥WebCacheに保存されている
  44. 44. 追加情報• ネット上のレポートなどを見ると、WebCacheV01.datの代わりにWebCacheV24.datが利用されている環境もあるようです。
  45. 45. 詳しい人いた~\(◎o◎)/!• いつもおなじみ NirSoft• http://blog.nirsoft.net/2012/12/08/a-few-words-about-the-cache-history-on-internet-explorer-10/– WebCacheV01.dat は VSS(Volume ShadowCopy) でログオン中でもコピーできたとの事です
  46. 46. NirSoft のツール• BrowsingHistoryView– http://www.nirsoft.net/utils/browsing_history_view.html• WebCacheV01.dat (WebCacheV24.dat) からも一時ファイル情報を取得できます…と言う事なのですが、手元環境では IE の情報は表示されませんでした
  47. 47. まとめ• Internet Explorer 10 では一時ファイルの管理方法が変更されている• キャッシュの実体の保存方法は変更なし• インデックス管理は index.dat のバイナリファイルから Extensible Storage Engineの ISAM データベースに変更• インデックスが堅牢になったと考えられます
  48. 48. ありがとうございました• ネットワーク パケットを読む会(仮)– 次回 5/24 開催予定– パケット持ち寄りの会(予定)– http://pa.hebikuzure.com/

×