What is Amcache FileId? (glossary)
FileId is the 41-character content identifier Amcache stores
for each inventoried PE file. It is "0000" followed by the
SHA-1 hex of the first 31 MiB of the file as the appraiser saw
it. The leading "0000" is a fixed type tag; the rest is a
genuine SHA-1.
A typical value:
0000da39a3ee5e6b4b0d3255bfef95601890afd80709
It is one of the single most useful fields in Amcache — directly usable for VirusTotal lookups, TI-feed enrichment, and cross-host hash pivots — but it carries two traps that catch new analysts constantly.
Trap 1: don't include the 0000 prefix in external lookups#
VirusTotal, your TI feed, and your hash-allowlist database all
expect a 40-character SHA-1. Including the 0000 prefix returns
no match silently, which looks identical to "this hash is
unknown" and produces wrong investigative conclusions.
AmcacheParser's CSV exposes both forms:
| Column | Value |
|---|---|
FileId |
The full "0000" + SHA-1 string. |
Hash |
Just the 40 hex characters. Use this for lookups. |
Trap 2: it's a prefix hash, not a whole-file hash#
The SHA-1 covers only the first 31 MiB of the file. For most PE binaries this is irrelevant (almost everything is smaller). For large installers, game binaries, and some enterprise software, the Amcache hash will not match a whole-file SHA-1.
To recompute the same hash for verification:
import hashlib
def amcache_sha1(path):
h = hashlib.sha1()
with open(path, 'rb') as f:
h.update(f.read(31 * 1024 * 1024))
return h.hexdigest()Where it's used#
- VirusTotal lookups — pivot from a single suspicious row to a malicious-or-not verdict.
- Cross-host hash hunting — find every other host in your environment with the same binary. See Lateral movement and Amcache ProgramId pivoting.
- Sysmon correlation — Sysmon Event ID 7 (Image Loaded)
records SHA-1; join Amcache
Hashto Sysmon 7 for which processes loaded a given DLL.
For the full FileId reference, see Amcache FileId explained.
Related terms#
- Amcache.hve — the hive that holds FileId values.
- ProgramId — the other unique identifier in InventoryApplicationFile.
- InventoryApplicationFile — the registry key where FileId values live.
Related posts
- What is Amcache ProgramId? (glossary)
ProgramId is the 44-character application-identity hash Amcache assigns to each logical application. The same ProgramId on different hosts means the same application install.
- What is LinkDate in Amcache? (glossary)
LinkDate is the PE header TimeDateStamp Amcache records — when the binary was compiled or linked, not when it appeared on the host.
- What is KeyLastWriteTimestamp in Amcache? (glossary)
KeyLastWriteTimestamp is the registry-level last-write time of an Amcache entry — the closest thing Amcache exposes to 'when the appraiser recorded this file'.
- What is Root\InventoryApplicationFile? (glossary)
InventoryApplicationFile is the headline Amcache registry key — one sub-key per PE binary inventoried by the appraiser, with path, SHA-1, publisher, link date, and timestamps.