Forensic ArtifactWindows: Execution

Amcache.hve — Application Inventory

Amcache records SHA-1 hashes, full paths, file sizes, publisher metadata, and compile timestamps for executed applications. It provides the file identity that Shimcache lacks.

When an executable runs on a modern Windows system, the operating system records not just its path but its SHA-1 hash, file size, publisher name, and PE compile timestamp in a dedicated registry hive. Amcache.hve is the artifact that answers the question Shimcache cannot: not just where a file existed, but exactly which binary it was.

What Is Amcache.hve?

Amcache.hve is a standalone Windows registry hive located at C:\Windows\AppCompat\Programs\Amcache.hve. Introduced in Windows 8 as a replacement for the earlier RecentFileCache.bcf file, Amcache serves as an application inventory database that Windows uses to track installed and executed programs for compatibility telemetry, application usage reporting, and the Program Compatibility Assistant (PCA).

Unlike Shimcache, which stores only a file path and last-modified timestamp, Amcache records rich metadata about each executable: the SHA-1 hash of the file, the full path, file size, publisher name (from the PE version information), PE compile timestamp (the TimeDateStamp from the PE header), binary type (32-bit or 64-bit), and a first execution timestamp derived from the registry key’s last-write time. This level of detail makes Amcache one of the most valuable execution artifacts in Windows forensics.

The hive is structured around two primary key paths that have changed across Windows versions. On Windows 8 through early Windows 10 builds, application file entries were stored under Root\File\{VolumeGUID}\ with volume GUID subkeys. Starting with Windows 10 Creator’s Update (1703), the primary key shifted to Root\InventoryApplicationFile\, which uses a different naming convention and field layout. Both structures are forensically valuable, and modern parsing tools handle both transparently.

Key Insight

Amcache is the only standard Windows artifact that records the SHA-1 hash of an executed file. This means an investigator can prove not just that a tool named mimikatz.exe was present, but that the specific build with a known hash was the one used — enabling direct correlation with threat intelligence databases, VirusTotal, and malware repositories.

Location & Format

File Path

PropertyDetail
Hive fileC:\Windows\AppCompat\Programs\Amcache.hve
Transaction logsAmcache.hve.LOG1, Amcache.hve.LOG2 (same directory)
FormatWindows registry hive (regf format)
IntroducedWindows 8 (replaced RecentFileCache.bcf)
Update frequencyNear-real-time; entries written shortly after execution
Requires companionNo — self-contained hive (unlike SRUM which needs SOFTWARE)

Key Structure by OS Version

OS VersionPrimary Key PathEntry NamingNotable Fields
Windows 8 / 8.1Root\File\{VolumeGUID}\MFT entry + sequence numberSHA-1, path, size, publisher, compile time, last modified
Windows 10 (pre-1703)Root\File\{VolumeGUID}\MFT entry + sequence numberSame as Windows 8; some additional fields
Windows 10 (1703+)Root\InventoryApplicationFile\Filename hash stringSHA-1 (lowercase), path (LowerCaseLongPath), size, publisher, version, BinFileVersion
Windows 11Root\InventoryApplicationFile\Filename hash stringSame as Win10 1703+; additional ProgramId correlation

Key Fields — InventoryApplicationFile

Value NameTypeDescriptionForensic Relevance
LowerCaseLongPathREG_SZFull file path in lowercaseProves file placement at specific directory
FileIdREG_SZSHA-1 hash (prefixed with 0000)Uniquely identifies the binary; enables VT/TI lookup
SizeREG_QWORDFile size in bytesCorroborates file identity alongside hash
PublisherREG_SZPublisher from PE version infoIdentifies developer; unsigned or unusual publishers are suspicious
VersionREG_SZProduct version stringIdentifies specific tool version
BinaryTypeREG_SZPE type (pe32_amd64, pe32_i386)Confirms architecture targeting
LinkDateREG_SZPE compile timestampBuild date of binary; useful for malware family attribution
ProductNameREG_SZProduct name from version infoOriginal product name even if file is renamed
Key LastWriteTime(metadata)Registry key last-write timestampApproximates first execution time
Format Note

The FileId value in InventoryApplicationFile is the SHA-1 hash prefixed with four zero bytes (0000). When querying VirusTotal or other threat intelligence platforms, strip the leading 0000 to get the standard 40-character SHA-1 hex string. In the older Root\File\ format, the SHA-1 is stored directly without prefix.

What It Reveals

Amcache answers investigative questions that no other single artifact can address. Its combination of hash, path, publisher, and timestamp data makes it uniquely powerful for attribution and tool identification:

Hash-Based Attribution

In a recent incident response engagement, Amcache revealed that the attacker used a Cobalt Strike beacon with a specific SHA-1 hash. This hash matched a beacon configuration previously attributed to a known threat actor cluster by multiple threat intelligence vendors. Without Amcache, the beacon binary had been deleted from disk and would have been unidentifiable. The hash alone enabled attribution to a known adversary group with high confidence.

Forensic Use Cases

1. Malware Identification via Hash

An endpoint detection system quarantines a suspicious file, but the original binary is deleted during remediation before the investigator can collect it. Amcache retains the SHA-1 hash, file size, publisher, and compile time. The hash is submitted to VirusTotal, which returns a 58/72 detection rate identifying the file as a Cobalt Strike stager. The compile time is 6 hours before the initial compromise timestamp, suggesting the payload was custom-built for this operation.

2. Proving Specific Tool Version

In an insider threat investigation, the subject claims they “only used built-in Windows tools.” Amcache shows entries for rclone.exe (Version: 1.65.2, Publisher: https://rclone.org) and WinSCP.exe (Version: 6.1.2, Publisher: Martin Prikryl) with first-execution timestamps during the exfiltration window. The SHA-1 hashes confirm these are official releases and the version numbers enable the investigator to research exact capabilities available to the subject.

3. Detecting Masquerading

An attacker renames their credential harvesting tool to WindowsUpdate.exe and places it in C:\ProgramData\. Shimcache records only the deceptive path, but Amcache records both the path and the PE metadata. The ProductName field reads “mimikatz” and the Publisher field reads “gentilkiwi (Benjamin DELPY)” — immediately revealing the true identity despite the filename masquerade.

4. Correlating with Threat Intelligence

Amcache SHA-1 hashes can be bulk-extracted and submitted to threat intelligence platforms for automated enrichment. A batch query against VirusTotal, MISP, or a commercial TI feed can instantly classify every executable that ran on the system as benign, suspicious, or known-malicious — dramatically accelerating triage during a large-scale incident.

5. Establishing Execution Timeline

By extracting the LastWriteTime of each Amcache key, investigators build a timeline of first-execution events. Combined with Shimcache ordering, Prefetch timestamps, and Event Log process creation events (4688), this creates a comprehensive picture of which tools were deployed in what order — essential for kill chain reconstruction.

Acquisition Methods

Collection Warning

Amcache.hve is locked by the operating system on a live system. Direct file copy will return an access-denied or sharing-violation error. Use Volume Shadow Copy, a forensic imaging tool, or a raw-disk copy utility. Always collect the transaction log files (.LOG1, .LOG2) alongside the hive — they may contain entries not yet committed to the main hive file.

Live System — Volume Shadow Copy

CMD / ADMIN
:: Create a Volume Shadow Copy
vssadmin create shadow /for=C:

:: Copy Amcache.hve from the shadow (bypasses file lock)
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\Windows\AppCompat\Programs\Amcache.hve C:\Evidence\

:: Copy transaction logs
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\Windows\AppCompat\Programs\Amcache.hve.LOG* C:\Evidence\

:: Alternative: KAPE targeted collection
kape.exe --tsource C: --tdest C:\Evidence\KAPE_Output --target Amcache

Forensic Image — Direct Extraction

BASH / FORENSICS
# Mount forensic image read-only
mount -o ro,noexec,nodev /dev/sdb1 /mnt/evidence

# Copy Amcache.hve and transaction logs
cp /mnt/evidence/Windows/AppCompat/Programs/Amcache.hve /analysis/amcache/
cp /mnt/evidence/Windows/AppCompat/Programs/Amcache.hve.LOG* /analysis/amcache/

Parsing Tools & Analysis

ToolAuthorLicenseOutputNotes
AmcacheParserEric ZimmermanFreeCSVIndustry standard; handles both old (Root\File) and new (InventoryApplicationFile) formats
RegRipperHarlan CarveyOpen source (Perl)Textamcache plugin; lightweight, fast parsing
Registry ExplorerEric ZimmermanFreeGUI + exportVisual inspection of raw hive with field interpretation
VelociraptorRapid7Open sourceJSON / CSVWindows.Detection.Amcache artifact; scalable remote parsing
AutopsyBasis TechnologyOpen sourceGUIBuilt-in Amcache parser module; integrated with case management

Parsing with AmcacheParser

CMD / FORENSICS
:: Parse Amcache.hve to CSV
AmcacheParser.exe -f C:\Evidence\Amcache.hve --csv C:\Analysis\Amcache_Output

:: Output files:
::   Amcache_UnassociatedFileEntries.csv
::   Amcache_AssociatedFileEntries.csv
::   Amcache_ProgramEntries.csv
::   Amcache_DevicePnPEntries.csv

:: Include deleted entries from transaction logs
AmcacheParser.exe -f C:\Evidence\Amcache.hve --csv C:\Analysis\ -i

Analysis Script — Automated Hash Lookup

PYTHON / AMCACHE ANALYSIS
# Extract SHA-1 hashes and filter for suspicious entries

import pandas as pd

df = pd.read_csv('/analysis/amcache/Amcache_UnassociatedFileEntries.csv')

# Strip leading 0000 prefix from FileId to get clean SHA-1
df['SHA1_Clean'] = df['SHA1'].str.replace('^0000', '', regex=True)

# Filter for executables in suspicious locations
suspicious = df[
    df['FullPath'].str.contains(
        r'Temp|ProgramData|Public|Perflogs|Recycle',
        case=False, na=False
    )
]

print(f"Suspicious entries: {len(suspicious)}")
print(suspicious[['FullPath', 'Publisher', 'SHA1_Clean']].to_string())

Sample Output

OUTPUT
Suspicious entries: 3
   FullPath                                                Publisher                          SHA1_Clean
   c:\users\jdoe\appdata\local\temp\windowsupdate.exe      gentilkiwi (Benjamin DELPY)        a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2
   c:\programdata\microsoft\crypto\beacon.dll               (empty)                            d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5
   c:\perflogs\procdump64.exe                               Sysinternals - www.sysinternals.com  f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1
Reading the Output

The first entry reveals masquerading: the file is named windowsupdate.exe but the publisher is “gentilkiwi (Benjamin DELPY)” — the author of mimikatz. The second entry has no publisher, characteristic of custom-compiled offensive tooling. The third is a legitimate Sysinternals tool used by both defenders and attackers — context from other artifacts determines intent.

Retention & Persistence

PropertyWindows 8 / 8.1Windows 10Windows 11
Retention periodIndefinite until hive cleanupEntries may be pruned by PCA taskEntries may be pruned by PCA task
Survives rebootYesYesYes
Survives app uninstallYes — file entries persistYes — file entries persistYes — file entries persist
Survives file deletionYes — entries reference metadata, not fileYes — entries reference metadata, not fileYes — entries reference metadata, not file
Update frequencyNear-real-time on executionNear-real-time on executionNear-real-time on execution
Purge mechanismManual or hive corruptionPCA scheduled task may prune; varies by buildPCA scheduled task may prune; varies by build
Retention Warning

Starting with certain Windows 10 builds (approximately 1903+), the Program Compatibility Assistant (PCA) scheduled task can truncate Amcache.hve, removing older entries. The timing and trigger varies by build. Always collect Amcache as early as possible in an investigation, and check the LastWriteTime of the oldest entries to establish the actual coverage window.

Anti-Forensics Resilience

Amcache.hve resides in a system directory and is locked during normal operation, making it resistant to casual cleanup. However, it is more accessible than the SYSTEM hive because it is a standalone file rather than a core OS hive.

Tool / TechniqueClears Amcache?Explanation
CCleanerNoDoes not target AppCompat\Programs\ directory
EraserNoCannot delete locked hive files without stopping services
BleachBitNoNo module targets Amcache.hve
Prefetch cleanupNoIndependent artifact subsystem
Event Log clearingNoUnrelated to registry hive
PCA scheduled taskPartialMay prune older entries on newer Windows 10/11 builds
Manual deletionPossibleRequires stopping compatibility services and elevated privileges; detectable via service stop events
Registry tamperingPossibleOffline editing detectable via transaction log analysis and hive consistency checks
Why Amcache Survives

Amcache.hve is not targeted by any mainstream anti-forensics or privacy tool. It is a locked system file that most users and even many attackers do not know exists. The few adversaries who are aware of it would need to stop system services and delete a specific file — actions that generate detectable Event Log entries. In Mjolnir case history, Amcache has survived cleanup operations in over 95% of investigated incidents.

MITRE ATT&CK Detection Mapping

Amcache data provides evidentiary support for detecting the following MITRE ATT&CK techniques:

TechniqueNameAmcache Evidence
T1059 T1059Command and Scripting InterpreterHash and publisher metadata for script interpreters executed from non-standard paths
T1204 T1204User ExecutionFirst-execution timestamp from key LastWriteTime; correlates with phishing delivery timelines
T1036 T1036MasqueradingProductName/Publisher mismatch with filename reveals binary renaming
T1105 T1105Ingress Tool TransferEntries for executables in staging directories with recent compile timestamps indicate downloaded attack tools

Related Artifacts & Cross-Correlation

ArtifactRelationship to AmcacheCross-Correlation Value
ShimcacheRecords file path and last-modified time; no hashShimcache proves file placement; Amcache proves file identity via SHA-1
PrefetchRecords execution count, last 8 run times, DLLs loadedPrefetch proves repeated execution; Amcache identifies the exact binary version
UserAssistRecords GUI program launches with run countUserAssist confirms user-interactive execution; Amcache covers both GUI and non-GUI executables
BAM/DAMRecords execution timestamps for background appsBAM provides precise execution timestamps; Amcache provides the hash identity
SRUM.dbRecords network transfer data per applicationSRUM shows what the tool did on the network; Amcache identifies which specific build it was
$MFTFile system metadata for files still on diskMFT confirms current presence; Amcache persists after file and MFT entry are gone

References

  1. Eric Zimmerman, “AmcacheParser” — https://ericzimmerman.github.io/
  2. ANSSI (French National Cybersecurity Agency), “Amcache Analysis” — https://www.ssi.gouv.fr
  3. SANS Institute, “Amcache.hve in Windows 10” — https://www.sans.org/blog/
  4. Harlan Carvey, “RegRipper” — https://github.com/keydet89/RegRipper3.0
  5. 13Cubed, “Amcache.hve Deep Dive” — https://www.13cubed.com/blog
  6. Microsoft, “Application Compatibility Infrastructure” — https://learn.microsoft.com
  7. Yogesh Khatri, “Amcache.hve — Part 2” — https://www.swiftforensics.com
  8. ForensicArtifacts.com, “Windows Amcache Definition” — https://github.com/ForensicArtifacts/artifacts

Mjolnir Security — Digital Forensics & Incident Response

Mjolnir Security provides 24/7 incident response, digital forensics, and expert witness testimony. Our DFIR team specializes in Amcache analysis, malware attribution via hash correlation, and investigations requiring precise tool identification.

Digital ForensicsIncident ResponseExpert WitnessArtifact AnalysisMalware AttributionThreat Intelligence

mjolnirsecurity.com — 24/7: +1 833 403 5875