Jede NTFS-Datei hat ein $DATA-Attribut, das ihren Inhalt enthält. Bei den meisten Dateien ist $DATA nicht-resident — es verweist auf eine Liste von Cluster-Runs an anderer Stelle auf dem Volume. Ist eine Datei jedoch klein genug, leben ihre Bytes direkt im MFT-Eintrag.
Wie klein ist klein genug?
Ein MFT-Eintrag ist 1024 Byte groß. Zieht man Eintragsheader, $STANDARD_INFORMATION, mindestens ein $FILE_NAME und weitere Metadaten ab, bleiben etwa 700 Byte nutzbarer Platz für $DATA.
Dateien, die kleiner sind — Konfigurationsfragmente, Registry-Werte, Verknüpfungsziele, Batch-Skripte, einzelne Log-Zeilen — leben häufig vollständig in der MFT.
Warum das zählt
Ein residentes $DATA-Attribut lässt sich wiederherstellen, ohne den Rest der Festplatte zu lesen. Wenn du eine Kopie der $MFT hast, hast du bereits:
- Den vollständigen Inhalt kleiner Textdateien
- Eine Menge
$INDEX_ROOT-Daten für Verzeichnisse - Kurze alternative Datenströme
- Reparse Points und Symlink-Ziele
Das ist überraschend viel Beweismaterial in einem einzigen 200-MB-Extrakt.
Resident heißt nicht stabil
Wenn eine residente Datei über den freien Platz des Eintrags hinauswächst, wandelt NTFS sie in nicht-resident um — die Daten wandern in Cluster, $DATA wird zur Runlist. Auch der umgekehrte Fall ist möglich: Eine unter den Schwellenwert geschrumpfte Datei kann wieder resident werden, auch wenn Windows das selten von selbst tut.
Im Triage ist eine Datei, die einst groß war und jetzt resident ist, ungewöhnlich. Ein zweiter Blick lohnt sich.