Internet Explorer と従来の Edge¶
WebCache データベースとは¶
WebCacheV01.dat は、各ユーザーのプロファイル内にある Windows のインターネット機能 (WinINet) のデータベースで、ESE データベースです。Internet Explorer 10 と 11 は閲覧履歴、ダウンロード、キャッシュ、Cookie をここに保存します。従来の Edge (Edge が Chromium ベースになる前の Windows 10 の Edge) も同様です。レコードの種類ごとに、それぞれ独立したテーブルであるコンテナーがあります。
- 履歴 (
History、および 1 日または 1 週間ごとのMSHist01…): 閲覧した URL。それぞれに、ページのタイトル、記録の対象となったアカウント、最後に閲覧された時刻、閲覧された回数が記録されます。エクスプローラーが開いたローカル ファイルも、file:///URL としてここに記録されます。 - ダウンロード (
iedownload): ファイルの取得元 URL、保存先とダウンロード中に書き込まれていた場所、サイズ、ダウンロードの開始時刻、参照元のページ、MIME タイプ。 - Cookie: Windows 10 以降では Cookie そのもの (
CookieEntryExテーブル) で、ホスト、名前、値、時刻が含まれます。それより前のバージョンでは、Cookie を格納していた Cookie ファイル。 - キャッシュ (
Content): ページを表示するためにダウンロードされたファイル。それぞれに、URL、ディスク上のコピーの場所、HTTP 応答ヘッダーが記録されます。WinINet を使用する他のプログラムも、ダウンロードしたものをここにキャッシュします。 - Web ストレージ (
DOMStore)、互換性リスト (iecompat) など。
このデータベースはブラウザよりも長く残ります。Internet Explorer は廃止され、Chromium ベースの Edge は独自の SQLite データベースを使用します (Web ブラウザを参照) が、このデータベースは今もすべてのプロファイルに存在し、以前に記録された内容と、エクスプローラーや他のプログラムが今も記録している内容を保持しています。
この証拠から判断できること: ユーザーのプロファイルが、記録された時刻にその URL、ダウンロード、またはキャッシュされたファイルを記録しました。誰がキーボードの前にいたかも、キャッシュされたファイルが開かれたかどうかも、データベースからはわかりません。
保存場所と収集¶
%LOCALAPPDATA%\Microsoft\Windows\WebCache\WebCacheV01.dat
%LOCALAPPDATA%\Microsoft\Windows\WebCache\V01.log
%LOCALAPPDATA%\Microsoft\Windows\WebCache\V01*.log
%LOCALAPPDATA%\Microsoft\Windows\WebCache\V01.chk
コンテナーが参照するファイル (キャッシュされたファイル、Cookie ファイル) は、それぞれ専用のフォルダーにあります。%LOCALAPPDATA%\Microsoft\Windows\INetCache\、INetCookies\、History\、およびアプリの場合は %LOCALAPPDATA%\Packages\ の下です。
WebCache フォルダー全体を収集してください。Windows はユーザーがログオンしている間データベースを開いたままにするため、稼働中のシステムから取得したコピーは通常ダーティな状態です。最新の変更は、V01*.log トランザクション ログにしか存在しません。
トランザクション ログ
Juntei は ESE のトランザクション ログを再生しません。正常にシャットダウンされなかったデータベースは、概要ではダーティなままのデータベースとして数えられ、問題として報告されます。ログにしか存在しない変更は含まれません。それらを含めるには、まずフォルダーのコピーを作成し、そのコピーの中で Windows の esentutl /r V01 /d を実行してログを再生してください。
分析時の注意点¶
- 時刻は UTC で、100 ナノ秒単位です。ただし、1 日または 1 週間の履歴コンテナーの
ModifiedTimeは例外で、システムのローカル時刻がオフセットなしで書き込まれており、-Zもそのままにします。元のシステムの当時のタイム ゾーンで変換してください。AccessedTimeとの差はそのタイム ゾーンのオフセットであることが多いものの、常にそうとは限りません。2 つが異なる時点を示している場合もあります。 - 履歴エントリは閲覧ではなく URL です。
AccessedTimeはその最後の閲覧、AccessCountは閲覧された回数です。Historyコンテナーは URL ごとに 1 つのエントリを保持します。1 日または 1 週間のコンテナーはその期間のエントリを保持し、その名前は期間の初日と最終日の翌日を示します (MSHist012026110120261102: 2026 年 11 月 1 日)。 - 履歴内の
file:///URL は、エクスプローラーや他のプログラムから開かれたローカル ファイルであり、Web ページではありません。 Accountはエントリの記録の対象となったアカウント (Visited: alice@…) で、Userはデータベースのパスが含まれるプロファイル フォルダーです。両者は異なる場合があります。プロファイル フォルダーの名前が常にアカウントの名前と同じとは限らず、また別の場所にコピーされたデータベースのパスにはプロファイル フォルダーが含まれません。Packageは、エントリが誰のものかを示します。従来の Edge (microsoft.microsoftedge_8wekyb3d8bbwe)、拡張保護モードの Internet Explorer (windows_ie_ac_001)、または他のアプリのものです。空の場合は、ユーザー自身のもの (Internet Explorer、エクスプローラー、その他のプログラム) です。- Microsoft はダウンロード レコードを文書化していません。Juntei は、開始時刻とサイズはヘッダーがレコード内に収まる場合にのみ読み取り、パスとその他の文字列は最後の 2 つが URL と Windows のパスである場合にのみ読み取ります。それ以外の場合、行にはエントリ自体の URL と、開始時刻を読み取れないときはエントリのアクセス時刻が入り、問題が報告されます。
Publisherはブラウザが記録した名前であり、ファイルの署名を確認したものではありません。 - キャッシュ エントリは、ファイルがダウンロードされてキャッシュされたことを示します。ディスク上のコピーは、削除されている、置き換えられている、または一度も開かれていない可能性があります。
- 削除されたエントリは、現時点では復元されません。ESE は削除されたレコードを、ページをクリーンアップするまでページ内に保持することがありますが、Juntei は現存するレコードだけを読み取ります。
Juntei で解析する¶
Usage: juntei parse-ese webcache <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find WebCacheV01.dat
-f, --file <FILE> Parse one WebCache database
Output:
-o, --output <PATH> Directory of CSV tables, or JSON/JSONL file
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-ese webcache -d Users -o webcache-csv
juntei parse-ese webcache -d Users -t jsonl \
| jq 'select(.Table == "Downloads") | {StartTime, URL, TargetPath, User}'
-d は WebCacheV01.dat を名前で検索します。-f は名前に関係なくデータベースを読み取ります。
出力テーブル¶
CSV では 5 つのファイルが作成されます。行がない場合は、ヘッダーだけのファイルになります。JSON と JSONL の各行には、SourceFile の後に Table (History、Downloads、Cookies、Entries、または Containers) が含まれます。
| CSV ファイル | 内容 |
|---|---|
WebCache-History.csv |
履歴コンテナーのエントリ。 |
WebCache-Downloads.csv |
ダウンロード。 |
WebCache-Cookies.csv |
Cookie (Windows 10 以降)。 |
WebCache-Entries.csv |
その他すべてのコンテナーのエントリ: キャッシュされたファイル、Cookie ファイル、Web ストレージ、互換性リストなど。 |
WebCache-Containers.csv |
コンテナー。 |
フィールド¶
すべてのテーブルは、次のフィールドで始まります。
| フィールド | 解釈 |
|---|---|
SourceFile |
行の読み取り元のデータベース。 |
User |
パス上でプロファイルが属する Windows ユーザー (Users の次のフォルダー)。 |
Package |
行のデータが属するアプリ: コンテナーのディレクトリ (または Cookie テーブルのディレクトリ) の、AppData\Local\Packages の下のフォルダー。ユーザー自身のデータでは空です。 |
履歴¶
| フィールド | 解釈 |
|---|---|
Container |
コンテナー: History、または MSHist01 の後に期間の初日と最終日の翌日が続くもの。 |
AccessedTime |
URL の最後の閲覧 (UTC)。1 日または 1 週間のコンテナーでは、その期間内の最後の閲覧。 |
ModifiedTime |
エントリが最後に変更された時刻 (UTC)。1 日または 1 週間のコンテナーでは、オフセットなしのシステムのローカル時刻。 |
CreationTime |
エントリが作成された時刻 (UTC)。 |
ExpiryTime, SyncTime |
エントリが履歴から外れる予定の時刻と、最後に同期された時刻 (UTC)。 |
Account |
エントリの記録の対象となったアカウント。 |
URL |
ページまたはファイル。Visited: account@ プレフィックスは除かれます。 |
Title |
エントリに記録されたページのタイトル。1 日または 1 週間のコンテナーでは空です。 |
AccessCount, SyncCount |
URL が閲覧された回数と、エントリが同期された回数。 |
EntryType, Flags |
保存されているままのエントリの種類とフラグ。 |
EntryID, ContainerID |
コンテナー内でのエントリの ID と、コンテナーの ID。 |
ダウンロード¶
| フィールド | 解釈 |
|---|---|
StartTime |
ダウンロードが開始された時刻 (UTC)。 |
URL |
ファイルの取得元。 |
TargetPath, CurrentPath |
ファイルの保存先と、ダウンロード中に書き込まれていた場所。従来の Edge では .partial ファイル、Internet Explorer ではキャッシュのコピーです。 |
TotalBytes |
ファイルのサイズ。 |
Referrer |
参照元のページ。 |
MimeType |
配信時のファイルの種類 (Internet Explorer)。 |
Publisher |
従来の Edge がファイルの発行元として記録した名前。 |
AccessedTime |
エントリ自体のアクセス時刻 (UTC)。ほとんどの場合、ダウンロードの開始時刻です。 |
DownloadID, ContainerID |
コンテナー内でのエントリの ID と、コンテナーの ID。 |
Cookie¶
| フィールド | 解釈 |
|---|---|
LastModified, Expires |
Cookie が設定された時刻と、有効期限 (UTC)。 |
Host, Name, Path |
Cookie の対象サイト、Cookie の名前とパス。 |
Value |
保存されている値。 |
Flags |
保存されているままの Cookie のフラグ。 |
Directory |
データベースが Cookie テーブルに割り当てているディレクトリ。誰の Cookie かを示します (…\INetCookies\ESE\、従来の Edge の …\MicrosoftEdge\Cookies\ESE\、アプリのディレクトリ)。 |
CookieTable, EntryID |
テーブル (CookieEntryEx_<n>) と、その中での Cookie の ID。 |
エントリ¶
| フィールド | 解釈 |
|---|---|
Container |
コンテナー: Content (キャッシュされたファイル)、Cookies (Cookie ファイル)、DOMStore (Web ストレージ)、iecompat、…。 |
AccessedTime |
エントリが最後に使用された時刻 (UTC)。 |
ModifiedTime |
サーバーが示した、リソースの最終更新時刻 (UTC)。 |
CreationTime |
エントリが作成された時刻 (UTC)。 |
ExpiryTime, SyncTime |
エントリの有効期限と、最後にサーバーに確認された時刻 (UTC)。 |
URL |
保存されている URL: キャッシュされたファイルでは URL、Cookie ファイルでは Cookie:alice@example.com/、そのほか DOMStore:…、iecompat:…。 |
Account |
Cookie ファイルのアカウント。 |
Filename, FilePath |
エントリのファイルとその場所。場所は、コンテナーのディレクトリと、エントリが指定するサブフォルダーです。 |
FileSize |
ファイルのサイズ。 |
AccessCount, SyncCount |
エントリが使用された回数と、サーバーに確認された回数。 |
EntryType, Flags |
保存されているままのエントリの種類とフラグ。 |
RedirectURL |
URL のリダイレクト先。 |
ResponseHeaders, RequestHeaders |
HTTP 応答ヘッダー (HTTP/1.1 200 OK、Content-Type、Server、…) と要求ヘッダー。改行も含め、保存されているままです。 |
EntryID, ContainerID |
コンテナー内でのエントリの ID と、コンテナーの ID。 |
コンテナー¶
| フィールド | 解釈 |
|---|---|
ContainerID, Name |
コンテナーの ID と名前。 |
Directory |
コンテナーのファイルがあるディスク上の場所。 |
SecureDirectories |
ファイルが置かれている Directory のサブフォルダー (CSV ではコンマ区切り)。 |
PartitionID |
ユーザー自身のコンテナーは M、Internet Explorer の保護モードのコンテナー (Low フォルダー) は L、アプリのコンテナーはそのアプリ コンテナーの SID。 |
LastAccessTime, LastScavengeTime |
コンテナーが最後に使用された時刻と、最後にクリーンアップされた時刻 (UTC)。 |
自動解析¶
auto-parse は、テーブルを BrowserActivity に WebCache-History.csv、WebCache-Downloads.csv、WebCache-Cookies.csv、WebCache-Entries.csv、WebCache-Containers.csv として書き出し (-t json または -t jsonl の場合は 1 つの WebCache.json または WebCache.jsonl ファイル)、あわせて BrowserActivity/WebCache-logs.txt を作成します。結合された -j タイムラインにはすべての行が含まれ、Comp と Artifact 識別子 webcache が付きます。-Z は、1 日または 1 週間の履歴コンテナーのローカル時刻である ModifiedTime を除き、すべての時刻、すなわち Time で終わるフィールド、LastModified、Expires を変換します。