What is BAM?
The Background Activity Moderator (BAM) is a Windows service driver, added in Windows 10 1709, that throttles background applications. To do that it records, per user, the full path of each executable it sees and the last time it ran.
The Desktop Activity Moderator (DAM) keeps the same kind of record for desktop apps under Modern Standby. Both are stored in the SYSTEM hive, which makes them a compact, per-user source of evidence of execution.
Where BAM and DAM are stored
- Hive file: C:\Windows\System32\config\SYSTEM
- Windows 10 1809+ and Windows 11: ControlSet00X\Services\bam\State\UserSettings\<SID> (and dam\State\UserSettings)
- Windows 10 1709–1803: ControlSet00X\Services\bam\UserSettings\<SID>
- Each value is named after an executable (\Device\HarddiskVolumeN\… or a packaged-app name); its data starts with an 8-byte FILETIME: the last execution time, in UTC.
Why it matters in an investigation
- Ties a program to a user account through its SID — unlike ShimCache or Prefetch.
- Gives a precise timestamp of the program's last recorded activity (updated when it starts and when it exits), per user.
- Works independently of Prefetch, so it can still help when Prefetch is disabled.
Limitations
- Only the last execution is kept, not the first or a run count.
- Windows prunes entries older than about a week at boot, so acquire early.
- Programs run from removable media or network shares get no entry, and entries for deleted programs are removed at the next boot (Suhanov, 2020).
- Paths use \Device\HarddiskVolumeN; map volume numbers to drive letters with other artifacts.
How to get the hive
- SYSTEM is locked on a live system: collect it with KAPE (!SANS_Triage or RegistryHives target), Velociraptor, FTK Imager or reg save HKLM\SYSTEM.
- Keep SYSTEM.LOG1 and SYSTEM.LOG2: a dirty hive may be missing the most recent BAM writes until the logs are replayed.
- Add C:\Windows\System32\config\SOFTWARE to name each SID from the ProfileList.
FAQ
Is my hive uploaded anywhere?
No. The parser is Rust compiled to WebAssembly and runs in a Web Worker in your browser. There is no upload endpoint; you can use the site offline once loaded.
What is the difference between BAM and DAM?
BAM moderates background activity for every app; DAM does the same for desktop apps on Modern Standby devices. Their keys have the same format; DAM usually holds fewer entries.
Why do I see the same program in two control sets?
ControlSet002 is often an older last-known-good copy. Keep 'Active control set only' on for the current state, or turn it off to compare with the older snapshot.
How long do BAM entries last?
Windows removes entries older than roughly seven days when the system boots, so BAM mostly covers recent activity.
Which Windows versions have BAM?
Windows 10 1709 and later, and Windows 11. Earlier versions have no BAM key. Behaviour on Windows Server is not well documented: check whether the key exists.