Cada archivo NTFS tiene un atributo $DATA que contiene su contenido. En la mayoría de los archivos, $DATA es no residente — apunta a una lista de cluster runs en otra parte del volumen. Pero cuando un archivo es suficientemente pequeño, sus bytes viven dentro del propio registro MFT.
¿Cuán pequeño es suficiente?
Un registro MFT ocupa 1024 bytes. Resta la cabecera del registro, $STANDARD_INFORMATION, al menos un $FILE_NAME y otros metadatos, y quedan aproximadamente 700 bytes de espacio utilizable para $DATA.
Los archivos más pequeños que eso — fragmentos de configuración, valores de registro, destinos de accesos directos, scripts batch, ciertas líneas de log — suelen vivir por completo dentro del MFT.
Por qué importa
Un atributo $DATA residente puede recuperarse sin leer el resto del disco. Si tienes una copia del $MFT, ya tienes:
- El contenido íntegro de los archivos de texto pequeños
- Gran cantidad de datos
$INDEX_ROOTde carpetas - Flujos de datos alternativos cortos
- Puntos de reparse y destinos de enlaces simbólicos
Es una cantidad sorprendente de evidencia en un único extracto de 200 MB.
Residente no significa estable
Cuando un archivo residente crece más allá del espacio libre del registro, NTFS lo convierte en no residente — los datos se trasladan a clusters y $DATA se convierte en runlist. También puede ocurrir lo contrario: un archivo reducido por debajo del umbral puede volver a ser residente, aunque Windows lo hace pocas veces de forma espontánea.
En triaje, un archivo que antes era grande y ahora es residente es inusual. Merece una mirada más detenida.