01Location
- $MFT entry: $STANDARD_INFORMATION (type 0x10) and one or more $FILE_NAME (type 0x30) attributes; copies of $FILE_NAME also appear in parent $I30 index entries
02Questions it answers
- Were the user-visible timestamps of a file altered after creation?
- When was the file name created or last changed (rename, move)?
- Do the short (8.3) and long names or hard links carry consistent times?
03Format and versions
| Format | $SI (resident, 48 or 72 bytes): creation, last modification, MFT entry modification, last access at offsets 0, 8, 16, 24. $FILE_NAME (resident): parent reference at 0, then the same four times at 8, 16, 24, 32, followed by sizes, flags and the UTF-16LE name. |
|---|---|
| Applies to | All NTFS versions; $SI is 72 bytes from NTFS 3.0. Times are UTC FILETIME values. |
04Key fields
| Field | What it tells you |
|---|---|
| $SI Creation / Modified / MFT modified / Accessed | Times shown to users by the file system view; the common target of timestomping. |
| $FN Creation / Modified / MFT modified / Accessed | Times in each file name attribute; changing them typically requires kernel interaction or moving or renaming the file (MITRE). |
| $FN parent file reference | MFT reference of the parent directory for that name. |
| $FN namespace | POSIX, Windows (long), DOS (8.3) or combined; one entry may hold several $FILE_NAME attributes, including one per hard link. |
05Timestamps
| Field | Encoding | Note |
|---|---|---|
| All eight values | FILETIME: 64-bit count of 100 ns intervals since 1601-01-01 UTC | NTFS records times in UTC; last access updates can be deferred by up to one hour. |
Decode raw values with the Timestamp decoder and convert local wall-clock times with the Local time to UTC.
06Examination workflow
- Parse the MFT entry and extract $SI and every $FILE_NAME attribute with full 100 ns precision.
- Flag entries where $SI creation is earlier than $FN creation, or where $SI and $FN values are identical in a way that suggests both were set together.
- Compare $SI MFT-modified time with the other $SI values: SetFileTime sets only creation, last access and last write.
- Corroborate with independent sources such as the USN journal, $LogFile, link files and event logs before concluding.
07Interpretation pitfalls
- $SI/$FN mismatches also arise from legitimate operations (copying, extracting archives, renames); a mismatch is an indicator, not proof.
- MITRE describes 'double timestomping' that sets both attributes, which defeats a simple comparison.
- $FILE_NAME size fields are not always accurate in MFT attributes (libyal, citing Carrier).
- MFT entries without $STANDARD_INFORMATION but with $FILE_NAME have been observed; handle missing attributes explicitly.
09Sources
- libfsntfs — New Technologies File System (NTFS) format documentation Joachim Metz (GitHub) · checked 2026-10-14
- Indicator Removal: Timestomp (T1070.006) MITRE ATT&CK · checked 2026-10-14
- FILETIME structure Microsoft Learn · checked 2026-10-14
- SetFileTime function Microsoft Learn · checked 2026-10-14
- File Times Microsoft Learn · checked 2026-10-14