← Voltar ao blog

Dados residentes: pequenos arquivos que vivem dentro do MFT

· 2 min de leitura

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_ROOT de 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.

Recursos externos