User activity
Clipboard history
Clipboard history cheat sheet: what Windows 10/11 keeps in memory, pinned items on disk, cloud clipboard text in ActivitiesCache.db and the registry settings.
- Location
- C:\Users\<user>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db
- Proves
- Text a user copied, from which app and when, if cloud clipboard sync was on
- Timestamps
- Cloud clipboard StartTime, ExpirationTime, LastModifiedTime as Unix epoch seconds, UTC; pinned items dated by metadata.json and folder times
- Retention
- Live history (25 items) cleared at restart or sign-out; cloud clipboard rows expire after about 12 hours; pinned items kept until unpinned
- Access
- User profile files, copy ActivitiesCache.db with its -wal; capture RAM first on a live system, a reboot destroys the history
- Evidence of
- User activity
- Type
- Database
- Windows
- 1011
- KAPE target
- WindowsTimeline
- Velociraptor
- Windows.Triage.Targets:WindowsTimeline
Tools
Compare all toolsWhat it is
Since Windows 10 version 1809, pressing Win+V opens a clipboard history that keeps several recent copies instead of only the last one. The history itself is managed in memory by the per-user Clipboard User Service (cbdhsvc_<suffix>, hosted in svchost.exe) and is cleared at every restart. What reaches the disk depends on user settings:
- Pinned items are written to the user profile so they survive reboots.
- If "Sync across your devices" (cloud clipboard) is on as well, copied text is also recorded in the Windows Timeline database,
ActivitiesCache.db, for about 12 hours.
Be precise in reports: with default settings (history off, sync off) no clipboard content is written to disk; only memory, the pagefile or hibernation file can hold it.
Location
| Item | Location | Persists? |
|---|---|---|
| Settings | NTUSER.DAT\Software\Microsoft\Clipboard (EnableClipboardHistory, EnableCloudClipboard, CloudClipboardAutomaticUpload) | Yes |
| Live history (up to 25 items) | Memory of the Clipboard User Service | Until reboot or sign-out |
| Pinned items | %LOCALAPPDATA%\Microsoft\Windows\Clipboard\Pinned\<GUID>\ with metadata.json and data files | Yes, until unpinned |
| History folder | %LOCALAPPDATA%\Microsoft\Windows\Clipboard\HistoryData\ | Created when history is enabled |
| Cloud clipboard entries | %LOCALAPPDATA%\ConnectedDevicesPlatform\<id>\ActivitiesCache.db (+ -wal, -shm) | About 12 hours per entry |
| Paged-out memory | C:\pagefile.sys, C:\hiberfil.sys | Until overwritten |
What it proves
- Copied content: the exact text of a copy operation (from
ActivitiesCache.dbor memory), useful for passwords, account numbers, commands or data prepared for exfiltration. - Source application: the app that the copy came from (the
Payload/AppIdof the activity). - Timing: when the copy happened (
StartTime) within the retention window. - User configuration: whether history and cloud sync were enabled, which tells you what evidence to expect.
- It does not prove the text was pasted anywhere, and an empty result proves nothing when sync was off.
Key fields
| Field | Meaning |
|---|---|
EnableClipboardHistory (DWORD) | 1 = clipboard history (Win+V) enabled |
EnableCloudClipboard (DWORD) | 1 = sync across devices enabled |
CloudClipboardAutomaticUpload (DWORD) | 1 = copied items are synced automatically |
ActivityType = 10 | Clipboard content held by the timeline database |
ActivityType = 16 | Copy/paste operation record |
ClipboardPayload | JSON with the copied text Base64-encoded; check both the Activity and ActivityOperation tables |
Payload / AppId | Application the data was copied from |
metadata.json (pinned) | Pinned items with the time they were pinned |
Timestamps
| Timestamp | Set when | Format | Pitfalls |
|---|---|---|---|
StartTime | Text copied to the clipboard | Unix epoch seconds, UTC | Only within the 12-hour window |
ExpirationTime | Scheduled removal | Unix epoch seconds, UTC | Always about 12 hours after StartTime |
LastModifiedTime | Record last modified | Unix epoch seconds, UTC | Not the copy time; use StartTime |
metadata.json pin time, Pinned\<GUID> folder creation | Item pinned | JSON timestamp / NTFS, UTC | Records pinning, not the original copy |
Software\Microsoft\Clipboard key last write | Setting changed | FILETIME, UTC | Shows when the user toggled history or sync |
Retention and clearing
- The in-memory history holds up to 25 items and is cleared at restart; signing out also clears it.
- Cloud clipboard rows in
ActivitiesCache.dbexpire after about 12 hours; remnants can linger in the WAL and free pages until overwritten (SQLite WAL). - Unpinning deletes the item's folder under
Pinned; pinned data files appear encrypted or encoded, so the content is not directly readable. - "Clear" in the Win+V panel removes unpinned items; turning history off stops collection.
- Memory copies can be paged out to
pagefile.sysor saved inhiberfil.sys, which may outlive the 12-hour window.
Collection
- KAPE target:
WindowsTimeline(collectsActivitiesCache.db*). No target exists for theClipboard\Pinnedfolder; copy it manually. Registry settings come withRegistryHivesUser. - Velociraptor (
Windows.Triage.Targets):WindowsTimeline; the Exchange artifactWindows.Forensics.Clipboarddecodes clipboard rows on live systems. - Memory first: on a live system, capture RAM before anything else (order of volatility); a reboot destroys the history.
reg query HKCU\Software\Microsoft\Clipboard
robocopy C:\Users\alice\AppData\Local\ConnectedDevicesPlatform E:\case\CDP ActivitiesCache.db* /S /COPY:DAT
robocopy C:\Users\alice\AppData\Local\Microsoft\Windows\Clipboard E:\case\Clipboard /E /COPY:DAT
Parsing tools
- WxTCmd (Eric Zimmerman): parses
ActivitiesCache.dbto CSV, includingActivityType; decode the Base64 clipboard content afterwards. - DB Browser for SQLite: filter
ActivityType = 10and decodeClipboardPayload(CyberChef or PowerShell[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String(...))). - Velociraptor:
Windows.Forensics.Clipboard(Exchange) and theGeneric.Forensic.SQLiteHunterextra, which decodes clipboard payloads fromActivitiesCache.db. - Volatility 2
clipboardplugin: reads clipboard structures from a memory image; for Win+V history, dump thecbdhsvcservice process and search it for strings.
Investigation tips
- Check the
Clipboardregistry values first: they tell you whether to expect cloud clipboard rows, pinned items, or memory-only data. - Clipboard rows are short-lived: prioritise collection of
ActivitiesCache.dbwith its WAL when an incident is recent. - Pair a copied password or file path with the Windows Timeline activity of the source app and with process execution to reconstruct the session.
- Search pagefile.sys and hiberfil.sys for copied strings you already know, to extend beyond the 12-hour window.
- Users often keep secrets in pinned clipboard items or Sticky Notes; review both in credential-theft cases.
- Behaviour was documented on Windows 10; validate on a matching Windows 11 build before stating that absence of rows is meaningful.
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.
- Sticky Notes (plum.sqlite and StickyNotes.snt)Sticky Notes cheat sheet: plum.sqlite Note table and .NET tick timestamps on Windows 10/11, legacy StickyNotes.snt, WAL recovery, collection and parsing.
- pagefile.sys and swapfile.syspagefile.sys and swapfile.sys cheat sheet: paged-out memory on disk, what can be recovered, ClearPageFileAtShutdown, compression caveats and carving tools.
- hiberfil.sys (hibernation file)hiberfil.sys cheat sheet: what hibernation and Fast Startup save, compression by Windows version, converting it to a raw memory image and what it can reveal.
- Registry hivesRegistry hives cheat sheet: SYSTEM, SOFTWARE, SAM, SECURITY, NTUSER.DAT, UsrClass.dat, transaction logs, RegBack, LastWrite times and collection.
- 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
- Order of VolatilityThe principle of collecting the most volatile evidence first, before it is lost, as described in RFC 3227.
- NTUSER.DATThe per-user registry hive stored in each Windows profile and loaded as HKEY_CURRENT_USER, rich in user activity and persistence traces.
- 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.
- 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.