Cada arquivo NTFS tem um atributo $DATA que contém o seu conteúdo. Na maioria dos arquivos, $DATA é não residente — aponta para uma lista de cluster runs em outro lugar do volume. Mas quando um arquivo é pequeno o bastante, seus bytes vivem dentro do próprio registro MFT.
Pequeno o bastante é quanto?
Um registro MFT ocupa 1024 bytes. Tire o cabeçalho do registro, o $STANDARD_INFORMATION, ao menos um $FILE_NAME e outros metadados, e sobram cerca de 700 bytes de espaço utilizável para $DATA.
Arquivos menores que isso — fragmentos de configuração, valores de registro, destinos de atalhos, scripts batch, certas linhas de log — vivem com frequência inteiramente dentro do MFT.
Por que isso importa
Um atributo $DATA residente pode ser recuperado sem ler o restante do disco. Se você tem uma cópia do $MFT, já tem:
- O conteúdo integral de pequenos arquivos de texto
- Muitos dados
$INDEX_ROOTde diretórios - Fluxos de dados alternativos curtos
- Reparse points e destinos de links simbólicos
É uma quantidade surpreendente de evidências em um único extrato de 200 MB.
Residente não significa estável
Quando um arquivo residente cresce além do espaço livre do registro, o NTFS o converte em não residente — os dados vão para clusters e $DATA vira runlist. O contrário também pode acontecer: um arquivo reduzido abaixo do limite pode voltar a ser residente, ainda que o Windows raramente faça isso por conta própria.
Em triagem, um arquivo que antes era grande e hoje é residente é incomum. Vale uma olhada mais atenta.