What is KeyLastWriteTimestamp in Amcache? (glossary)
KeyLastWriteTimestamp is the registry-level last-write time of
the key containing an Amcache inventory entry. It is the closest
thing Amcache exposes to a "when was this file recorded?"
timestamp. AmcacheParser surfaces it as a column in every
per-category CSV.
It is the single most important timestamp in Amcache — and the
one new analysts most often confuse with LinkDate (the PE
compile time), which is a completely different field that means a
completely different thing.
What it represents#
The registry stores a last-write time for every key — metadata
maintained by Windows itself. When the Compatibility Appraiser
writes or updates an inventory entry, Windows updates the key's
last-write time. AmcacheParser reads that field as
KeyLastWriteTimestamp.
Practically:
- First-appearance entries →
KeyLastWriteTimestampis the appraiser-run time after the file was first noticed. - Updated entries → advances to the most recent metadata change (file got larger, version string changed, hash changed).
- Unchanged entries → stays put even when subsequent appraiser passes confirm the file is still there.
That last point matters: it is not "the most recent time the appraiser saw this file" — it is "the most recent time the appraiser wrote about this file."
Common confusions#
| Question | Right field |
|---|---|
| "When did the appraiser record this file?" | KeyLastWriteTimestamp |
| "When was the binary compiled?" | LinkDate |
| "When was the file created on disk?" | MFT $STANDARD_INFORMATION.CreationTime |
| "When did the binary run?" | Prefetch run timestamps |
The standard time-window pivot#
For any suspicious row:
- Take its
KeyLastWriteTimestamp. - Define a one-hour window centred on it.
- Pull from that window: other Amcache rows, Prefetch entries,
Sysmon
1/7/11, Security4688, MFT and USN journal.
The resulting timeline is the canonical "what was happening around this inventory event?" reconstruction.
For full coverage, see Amcache timestamps explained.
Related terms#
- LinkDate — the timestamp it is most often confused with.
- Compatibility Appraiser — what writes the value.
- InventoryApplicationFile — where the entries live.
Related posts
- 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 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 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.
- What is Amcache FileId? (glossary)
FileId is the 41-character identifier Amcache stores for each file — '0000' + the SHA-1 hex of the first 31 MiB of the file.