User activity
Windows Recall (Copilot+ PC snapshots)
Windows Recall cheat sheet: CoreAIPlatform snapshot store, ukg.db and ImageStore, OCR text and window titles, VBS encryption, opt-in status and caveats.
- Location
- C:\Users\<user>\AppData\Local\CoreAIPlatform.00\UKP\{GUID}\ukg.db
- Proves
- What was on the user's screen at a given time: app, window title, visible text and a screenshot
- Timestamps
- Per-snapshot capture times in the database (Unix epoch milliseconds in the preview build, UTC); later formats unverified
- Retention
- Rolling, bounded by the user's storage allocation and maximum age settings; deleted when the user clears history or disables Recall
- Access
- In the released version, data is encrypted and gated by Windows Hello in the user session; offline access to content is generally not expected
- Evidence of
- User activityFile & folder access
- Type
- Database
- Windows
- 11
- KAPE target
- No dedicated target
- Velociraptor
- No dedicated target
Tools
Compare all toolsWhat it is
Recall is a Windows 11 feature for Copilot+ PCs (devices with a neural processing unit) that periodically captures snapshots of the screen, extracts text with on-device OCR and indexes it so the user can search "what they saw". From a forensic point of view it is a self-built screen recording with a searchable text index, which is why it drew heavy privacy criticism.
The feature changed substantially between its first preview and the released version, and still evolves. Read everything below as version-dependent:
- June 2024 preview: researchers showed the store was a plain SQLite database plus image files readable by any process running as the user. Microsoft pulled the release.
- Reworked release (Insider builds from late 2024, general availability on Copilot+ PCs in 2025): Recall is opt-in, can be removed as a Windows feature, requires Windows Hello to view, and Microsoft states snapshots and the index are encrypted with keys protected by a Virtualization-based Security (VBS) enclave.
Location
| Item | Path (preview build, as documented by researchers) |
|---|---|
| Recall store | %LOCALAPPDATA%\CoreAIPlatform.00\UKP\{GUID}\ |
| Index database | ukg.db (SQLite, with -wal / -shm) |
| Screenshots | ImageStore\ (image files without extension) |
| Policy | HKCU / HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsAI (for example DisableAIDataAnalysis, AllowRecallEnablement) |
Verify the layout on the build you are examining; paths and file names may have changed in the encrypted release.
What it proves
- Proves (when readable) what was displayed on screen at capture time: the app, window title, visible text and, for browsers, often the URL.
- Can show content that exists nowhere else: messages in ephemeral chats, documents viewed in a browser, remote session screens.
- It does not prove the user read or interacted with what was on screen.
- Snapshot gaps prove nothing: Recall skips private browsing, filtered apps and sites, content flagged as sensitive, DRM-protected content, and pauses on user request.
- The absence of a store usually means Recall was never enabled, not that it was wiped.
Key fields
Preview-build ukg.db tables as described in public research (names and schema may differ in later builds):
| Table / field | Meaning |
|---|---|
WindowCapture | One row per snapshot: window title, app name, timestamp, image token |
WindowCaptureTextIndex_content | OCR text extracted from the snapshot |
App | Applications seen, with path |
WindowCaptureAppRelation | Links snapshots to apps |
Web / URL fields | Browser URLs for supported browsers |
ImageToken | Name of the matching file in ImageStore |
Timestamps
| Timestamp | Format | Notes |
|---|---|---|
Snapshot time (WindowCapture) | Unix epoch milliseconds, UTC (preview) | Validate in each build; see UTC and local time |
| ImageStore file $SI times | NTFS, UTC | Roughly equal to capture time |
ukg.db modification | NTFS, UTC | Recent rows may still be in the WAL |
Retention and clearing
- Storage is bounded by a user-configurable allocation and, in the released version, a maximum snapshot age; oldest snapshots are removed first.
- Users can delete a time range or everything from Recall settings, and disabling or removing the feature deletes the store.
- On managed commercial devices Recall is disabled by default and controlled by policy; record the policy values as part of your findings.
Collection
Treat Recall as volatile and user-gated: if it matters, plan collection on the live system in the user's session.
# Is Recall present and enabled?
Dism /Online /Get-FeatureInfo /FeatureName:Recall
reg query "HKCU\SOFTWARE\Policies\Microsoft\Windows\WindowsAI"
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsAI"
# Copy the store (content may be encrypted)
robocopy "$env:LOCALAPPDATA\CoreAIPlatform.00" E:\case\recall /E /COPY:DAT /DCOPY:T
Document legal authority before collecting: Recall content is a screen history and can capture third-party and privileged material.
Parsing tools
- DB Browser for SQLite / sqlite3: query
ukg.dbfrom preview-era stores directly. - TotalRecall (Alex Hagenah, open source): extracts and reports preview-era Recall stores; check its notes for support of the encrypted release.
- KAPE / Velociraptor: collect the folder with a custom target if your build of the target library lacks one.
Investigation tips
- First establish status: Copilot+ hardware, feature installed, opt-in done, policy state. Most enterprise endpoints will have no Recall data.
- For released builds, assume content is not readable from a dead-box image. Access, where lawful, typically requires the live, unlocked user session and Windows Hello.
- When readable, search the OCR text for keywords and pivot to the matching screenshot, then confirm with conventional artifacts (browser history, SRUM, Windows Timeline).
- Attackers with user-level access to a preview-era store could harvest passwords and messages from it; in intrusion cases on such systems, treat the store as potentially exfiltrated.
Related artifacts
- Windows Timeline (ActivitiesCache.db)Windows Timeline cheat sheet: ActivitiesCache.db and WAL, Activity tables, ActivityType values, focus duration, clipboard, 30-day expiry and Windows 11 status.
- SRUM (System Resource Usage Monitor)SRUM cheat sheet: SRUDB.dat tables and GUIDs, per-app network bytes and CPU time, hourly UTC records, 30 to 60 day retention and ESE repair steps.
- Browser artifacts (Chrome, Edge, Firefox)Browser forensics cheat sheet: Chromium and Firefox profile files, History and places.sqlite tables, WebKit and PRTime timestamps, downloads, cookies, cache.
- Notification database (wpndatabase.db)Windows notification database cheat sheet: wpndatabase.db tables, toast Payload XML, FILETIME ArrivalTime and ExpiryTime, WAL recovery and legacy appdb.dat.
- Clipboard historyClipboard history cheat sheet: what Windows 10/11 keeps in memory, pinned items on disk, cloud clipboard text in ActivitiesCache.db and the registry settings.
- Notepad TabState (Windows 11)Notepad TabState cheat sheet: Windows 11 Notepad .bin tab files, unsaved text never written to disk, saved file paths, hashes, WindowState and parsing.
Glossary terms
- SQLite write-ahead log (-wal)The -wal sidecar file where SQLite writes recent changes before merging them into the main database; often holds the newest evidence.
- UTC vs local time in Windows artifactsWhy some Windows artifacts record UTC and others local time, and how the TimeZoneInformation registry key helps normalize a forensic timeline.
- Order of VolatilityThe principle of collecting the most volatile evidence first, before it is lost, as described in RFC 3227.
- Triage collectionTargeted acquisition of high-value artifacts (hives, event logs, $MFT, Prefetch) instead of a full disk image, using KAPE or Velociraptor.