BAMParser
Part of Eric Zimmerman’s Tools. A command-line utility specifically designed to parse BAM entries from an exported SYSTEM hive and output the results in CSV format.
The primary philosophy behind BAM is energy management. Modern Windows operating systems need to monitor which applications are active or resource-intensive in the background to throttle them if necessary (especially on laptops).
To achieve this, the BAM service (bam.sys) silently monitors application launches and records metadata about these executions directly into the system’s registry. Because its primary purpose is power management rather than auditing, attackers frequently overlook it during anti-forensic cleanup operations.
Unlike artifacts stored in user profiles (such as Jumplists or Shellbags), BAM data is centralized within the SYSTEM registry hive.
C:\Windows\System32\config\SYSTEMSYSTEM\CurrentControlSet\Services\bam\UserSettings\{User-SID}The UserSettings key contains subkeys for every Security Identifier (SID) that has logged into the machine. Inside each SID key, the registry stores a list of values where each value corresponds to a program executed by that specific user.
Parsing the BAM registry keys reveals three crucial pieces of forensic data for each entry:
\Device\HarddiskVolume2\Users\Admin\Desktop\malware.exe).FILETIME timestamp (in UTC) indicating the last time the BAM service observed this program running.BAM is a high-fidelity source of evidence, typically used to corroborate findings from other execution artifacts.
This is BAM’s greatest strength. While artifacts like Prefetch (.pf) or Shimcache are system-wide and prove that a file ran on the machine, BAM definitively answers the question: “Which user account executed this payload?”
Threat actors are well-aware of Prefetch and often attempt to delete .pf files to cover their tracks. Because BAM is a lesser-known artifact stored deep within the locked SYSTEM hive, it frequently survives automated cleanup scripts, preserving the execution footprint.
DFIR analysts use BAM to build an irrefutable proof of execution by correlating it with two other major artifacts.
Due to the structure of the registry hive and the need to parse FILETIME data accurately, manual analysis via regedit is inefficient during an incident.
BAMParser
Part of Eric Zimmerman’s Tools. A command-line utility specifically designed to parse BAM entries from an exported SYSTEM hive and output the results in CSV format.
RegRipper
Utilize the bam plugin within RegRipper to quickly extract and format the execution data directly from the registry hive.