Internet Explorer और लेगेसी Edge¶
WebCache database क्या है¶
WebCacheV01.dat हर उपयोगकर्ता की profile में Windows के Internet functions (WinINet) का database है, जो एक
ESE database है। Internet Explorer 10 और 11 अपना history, downloads, cache और cookies इसी में रखते हैं, और
legacy Edge भी, यानी Windows 10 का वह Edge जो Edge के Chromium-based होने से पहले था। हर प्रकार का record एक
container है, जो अपनी अलग table है:
- History (
History, और किसी एक दिन या एक सप्ताह के लिएMSHist01…): देखे गए URLs, हर एक page के title और उस account के साथ जिसके लिए वह दर्ज हुआ, और यह कि उसका आखिरी visit कब हुआ और कितनी बार हुआ। फ़ाइल एक्सप्लोरर जिन local files को खोलता है, उन्हें भी यहींfile:///URLs के रूप में दर्ज करता है। - Downloads (
iedownload): वह URL जहाँ से file आई, उसे कहाँ save किया गया और download के दौरान कहाँ लिखा गया, उसका size, download कब शुरू हुआ, referring page और MIME type। - Cookies: Windows 10 और बाद के versions में स्वयं cookies (
CookieEntryExtables), उनके host, name, value और समयों के साथ; उससे पहले, वे cookie files जिनमें cookies रखी जाती थीं। - Cache (
Content): pages दिखाने के लिए download की गई files, हर एक अपने URL के साथ, disk पर उसकी copy कहाँ है, और HTTP response headers। WinINet का उपयोग करने वाले अन्य programs भी अपने downloads यहीं cache करते हैं। - Web storage (
DOMStore), compatibility lists (iecompat) और अन्य।
यह database browsers से अधिक समय तक बना रहता है: Internet Explorer retire हो चुका है और Chromium-based Edge अपने अलग SQLite databases रखता है (वेब ब्राउज़र देखें), फिर भी यह database हर profile में अब भी मौजूद है, उसमें वह सब है जो पहले दर्ज हुआ था, और वह भी जो फ़ाइल एक्सप्लोरर और अन्य programs अब भी दर्ज करते हैं।
सर्वोत्तम निष्कर्ष: उपयोगकर्ता की profile ने दर्ज समय पर URL, download या cache की गई file को दर्ज किया; database यह नहीं बताता कि keyboard पर कौन बैठा था, या यह कि cache की गई file खोली गई थी।
स्थान और संग्रह¶
%LOCALAPPDATA%\Microsoft\Windows\WebCache\WebCacheV01.dat
%LOCALAPPDATA%\Microsoft\Windows\WebCache\V01.log
%LOCALAPPDATA%\Microsoft\Windows\WebCache\V01*.log
%LOCALAPPDATA%\Microsoft\Windows\WebCache\V01.chk
Containers जिन files के नाम देते हैं (cache की गई files, cookie files), वे अपने अलग folders में होती हैं:
%LOCALAPPDATA%\Microsoft\Windows\INetCache\, INetCookies\, History\, और apps के लिए
%LOCALAPPDATA%\Packages\ के अंतर्गत।
पूरा WebCache folder संग्रहित करें। उपयोगकर्ता के logged on रहते Windows database को खुला रखता है, इसलिए
चल रहे system से ली गई copy आमतौर पर dirty होती है: उसके सबसे नए बदलाव केवल V01*.log transaction logs में
होते हैं।
Transaction logs
Juntei ESE transaction logs को replay नहीं करता। जो database ठीक से बंद नहीं हुआ, उसे summary में dirty
छोड़े गए database के रूप में गिना जाता है और problem के रूप में रिपोर्ट किया जाता है: जो बदलाव अब भी केवल
उसके logs में हैं, वे अनुपस्थित रहते हैं। उन्हें शामिल करने के लिए पहले folder की एक copy में logs को replay
करें: उस copy में Windows का esentutl /r V01 /d चलाएँ।
विश्लेषक के लिए सावधानियाँ¶
- समय UTC में हैं, 100 nanoseconds तक, सिवाय किसी दिन या सप्ताह के history container के
ModifiedTimeके: वह system का local time है, बिना offset के लिखा हुआ, और-Zउसे जैसा है वैसा ही छोड़ देता है। उसे source system के उस समय के time zone से convert करें।AccessedTimeसे उसका अंतर अक्सर उसी time zone का offset होता है, लेकिन हमेशा नहीं: दोनों अलग-अलग क्षण हो सकते हैं। - History entry एक URL है, visit नहीं:
AccessedTimeउसका आखिरी visit है औरAccessCountबताता है कि कितने visits हुए।Historycontainer हर URL के लिए एक entry रखता है; किसी दिन या सप्ताह का container उस अवधि की entries रखता है, और उसका नाम अवधि का पहला दिन और आखिरी दिन के बाद वाला दिन बताता है (MSHist012026110120261102: 1 नवंबर 2026)। - History में
file:///URLs फ़ाइल एक्सप्लोरर और अन्य programs से खोली गई local files हैं, web pages नहीं। Accountवह account है जिसके लिए entry दर्ज की गई (Visited: alice@…);Userवह profile folder है जिसमें database का path है। दोनों अलग हो सकते हैं: profile folder का नाम हमेशा उसके account के नाम पर नहीं होता, और कहीं और copy किए गए database के path में कोई profile folder नहीं होता।Packageबताता है कि entry किसकी है: legacy Edge की (microsoft.microsoftedge_8wekyb3d8bbwe), Enhanced Protected Mode में Internet Explorer की (windows_ie_ac_001), या किसी अन्य app की। खाली होने पर entry उपयोगकर्ता की अपनी है: Internet Explorer, फ़ाइल एक्सप्लोरर और अन्य programs।- Microsoft download record का दस्तावेज़ीकरण नहीं करता। Juntei उसका start time और size केवल तभी पढ़ता है जब
उसका header record के भीतर समा जाता हो, और उसके paths तथा अन्य strings केवल तभी जब आखिरी दो strings एक URL और एक
Windows path हों। अन्यथा row में entry का अपना URL होता है, और start न पढ़ा जा सके तो उसका access time,
साथ में एक problem।
Publisherवह नाम है जो browser ने दर्ज किया, file के signature की जाँच नहीं। - Cache entry बताती है कि file download और cache की गई थी। Disk पर उसकी copy हट चुकी हो सकती है, बदली जा चुकी हो सकती है, या कभी खोली ही न गई हो।
- Deleted entries अभी recover नहीं की जातीं: ESE किसी deleted record को अपने pages में तब तक रख सकता है जब तक वह उन्हें साफ़ नहीं कर देता, लेकिन Juntei केवल live records पढ़ता है।
Juntei से parse करें¶
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 किसी database को पढ़ता है, उसका नाम चाहे जो हो।
आउटपुट tables¶
CSV पाँच files बनाता है; rows न होने पर हर file में केवल उसका header होता है। JSON और JSONL rows में
SourceFile के बाद Table (History, Downloads, Cookies, Entries या Containers) होता है।
| CSV file | सामग्री |
|---|---|
WebCache-History.csv |
History containers की entries। |
WebCache-Downloads.csv |
Downloads। |
WebCache-Cookies.csv |
Cookies (Windows 10 और बाद के versions)। |
WebCache-Entries.csv |
हर अन्य container की entries: cache की गई files, cookie files, web storage, compatibility lists और बाकी सब। |
WebCache-Containers.csv |
Containers। |
Fields¶
हर table इन fields से शुरू होती है:
| Field | व्याख्या |
|---|---|
SourceFile |
वह database जिससे row पढ़ी गई। |
User |
वह Windows उपयोगकर्ता जिसकी profile में path है (Users के बाद वाला folder)। |
Package |
वह app जिसका data यह row है: row के container की directory (या उसकी cookie table की directory) में AppData\Local\Packages के अंतर्गत वाला folder। उपयोगकर्ता के अपने data के लिए खाली। |
History¶
| Field | व्याख्या |
|---|---|
Container |
Container: History, या MSHist01 और उसके बाद उसकी अवधि का पहला दिन और आखिरी दिन के बाद वाला दिन। |
AccessedTime |
URL का आखिरी visit (UTC); किसी दिन या सप्ताह के container में, उस अवधि का आखिरी visit। |
ModifiedTime |
Entry में आखिरी बदलाव कब हुआ (UTC); किसी दिन या सप्ताह के container में, system का local time, बिना offset के। |
CreationTime |
Entry कब बनी (UTC)। |
ExpiryTime, SyncTime |
Entry का history से हटना कब तय है, और आखिरी बार कब synchronize हुई (UTC)। |
Account |
वह account जिसके लिए entry दर्ज की गई। |
URL |
Page या file, Visited: account@ prefix के बिना। |
Title |
Page का title, जैसा entry ने दर्ज किया; किसी दिन या सप्ताह के container में खाली। |
AccessCount, SyncCount |
URL कितनी बार visit किया गया, और entry कितनी बार synchronize हुई। |
EntryType, Flags |
Entry का type और flags, जैसे stored हैं। |
EntryID, ContainerID |
उसके container में entry का id, और container का id। |
Downloads¶
| Field | व्याख्या |
|---|---|
StartTime |
Download कब शुरू हुआ (UTC)। |
URL |
File कहाँ से आई। |
TargetPath, CurrentPath |
File कहाँ save की गई, और download के दौरान वह कहाँ लिखी जा रही थी: legacy Edge में एक .partial file, Internet Explorer में cache की copy। |
TotalBytes |
File का size। |
Referrer |
Referring page। |
MimeType |
File का type जैसा server ने बताया (Internet Explorer)। |
Publisher |
File के publisher का वह नाम जो legacy Edge ने दर्ज किया। |
AccessedTime |
Entry का अपना access time (UTC), अधिकतर download की शुरुआत। |
DownloadID, ContainerID |
उसके container में entry का id, और container का id। |
Cookies¶
| Field | व्याख्या |
|---|---|
LastModified, Expires |
Cookie कब set हुई, और कब expire होगी (UTC)। |
Host, Name, Path |
वह site जिसके लिए cookie है, उसका नाम और path। |
Value |
Value, जैसी stored है। |
Flags |
Cookie के flags, जैसे stored हैं। |
Directory |
वह directory जो database cookie table को देता है: यह बताती है कि cookies किसकी हैं (…\INetCookies\ESE\, legacy Edge की …\MicrosoftEdge\Cookies\ESE\, किसी app की)। |
CookieTable, EntryID |
Table (CookieEntryEx_<n>) और उसमें cookie का id। |
Entries¶
| Field | व्याख्या |
|---|---|
Container |
Container: Content (cache की गई files), Cookies (cookie files), DOMStore (web storage), iecompat, …। |
AccessedTime |
Entry का आखिरी बार उपयोग कब हुआ (UTC)। |
ModifiedTime |
Resource का आखिरी modification, जैसा server ने बताया (UTC)। |
CreationTime |
Entry कब बनी (UTC)। |
ExpiryTime, SyncTime |
Entry कब expire होगी, और server से आखिरी बार कब जाँची गई (UTC)। |
URL |
URL जैसा stored है: cache की गई file के लिए एक URL, cookie file के लिए Cookie:alice@example.com/, DOMStore:…, iecompat:…। |
Account |
किसी cookie file का account। |
Filename, FilePath |
Entry की file, और वह कहाँ है: container की directory और वह subfolder जिसका नाम entry देती है। |
FileSize |
File का size। |
AccessCount, SyncCount |
Entry कितनी बार उपयोग हुई, और कितनी बार server से जाँची गई। |
EntryType, Flags |
Entry का type और flags, जैसे stored हैं। |
RedirectURL |
URL कहाँ redirect हुआ। |
ResponseHeaders, RequestHeaders |
HTTP response headers (HTTP/1.1 200 OK, Content-Type, Server, …) और request headers, जैसे stored हैं, उनकी सभी lines सहित। |
EntryID, ContainerID |
उसके container में entry का id, और container का id। |
Containers¶
| Field | व्याख्या |
|---|---|
ContainerID, Name |
Container का id और नाम। |
Directory |
Disk पर उसकी files कहाँ हैं। |
SecureDirectories |
Directory के वे subfolders जिनमें उसकी files हैं (CSV में उनके बीच comma)। |
PartitionID |
उपयोगकर्ता के अपने containers के लिए M, Internet Explorer के Protected Mode के containers (Low folders) के लिए L, और किसी app के container के लिए उस app container का SID। |
LastAccessTime, LastScavengeTime |
Container का आखिरी बार उपयोग कब हुआ, और आखिरी बार उसकी सफ़ाई (cleanup) कब हुई (UTC)। |
स्वचालित विश्लेषण¶
auto-parse tables को BrowserActivity में WebCache-History.csv, WebCache-Downloads.csv,
WebCache-Cookies.csv, WebCache-Entries.csv और WebCache-Containers.csv के रूप में लिखता है (-t json या
-t jsonl के साथ एक ही WebCache.json या WebCache.jsonl file), साथ में BrowserActivity/WebCache-logs.txt
भी। संयुक्त -j timeline में हर row शामिल होती है, Comp और Artifact identifier webcache के साथ। -Z
हर समय को convert करता है, यानी Time पर समाप्त होने वाले fields, LastModified और Expires, सिवाय किसी दिन
या सप्ताह के history container के local ModifiedTime के।