Chaque fichier NTFS possède un attribut $DATA qui contient son contenu. Pour la plupart des fichiers, $DATA est non résident — il pointe vers une liste de cluster runs ailleurs sur le volume. Mais quand un fichier est suffisamment petit, ses octets vivent à l'intérieur de l'enregistrement MFT lui-même.
Suffisamment petit, c'est combien ?
Un enregistrement MFT fait 1 024 octets. Soustrayez l'en-tête de l'enregistrement, $STANDARD_INFORMATION, au moins un $FILE_NAME, et d'autres métadonnées, et il reste environ 700 octets d'espace utilisable pour $DATA.
Les fichiers plus petits que cela — extraits de configuration, valeurs de registre, cibles de raccourcis, scripts batch, certaines lignes de journaux — vivent souvent entièrement dans le MFT.
Pourquoi c'est important
Un attribut $DATA résident peut être récupéré sans lire le reste du disque. Si vous disposez d'une copie de $MFT, vous avez déjà :
- Le contenu intégral des petits fichiers texte
- Une grande quantité de données
$INDEX_ROOTpour les dossiers - Les flux de données alternatifs courts
- Les points de reparse et les cibles des liens symboliques
C'est une quantité surprenante de preuves dans un seul extrait de 200 Mo.
Résident ne veut pas dire stable
Quand un fichier résident dépasse l'espace libre de l'enregistrement, NTFS le convertit en non résident — les données partent vers des clusters et $DATA devient un runlist. L'inverse peut aussi se produire : un fichier réduit sous le seuil peut redevenir résident, même si Windows le fait rarement spontanément.
En triage, un fichier autrefois volumineux et désormais résident est inhabituel. Mérite un examen plus attentif.