Desvendado o funcionamento de uma relíquia

O Windows até hoje, em tempos de NTFS, cria dois nomes para os arquivos armazenados: o nome real e o nome DOS 8.3, que é uma relíquia da época dos Windows 9x, inventada para manter compatibilidade com aplicativos pré-VFAT.

D:\Downloads\Ra>dir /x
 O volume na unidade D é DADOS
 O Número de Série do Volume é XXXX-XXXX

 Pasta de D:\Downloads\Ra

11/06/2015  06:57    <DIR>                       .
11/06/2015  06:57    <DIR>                       ..
11/06/2015  06:56                 3 NOMEGR~1.TXT nome graaaaande 1.txt
11/06/2015  06:56                 3 NOMEGR~2.TXT nome graaaaande 2.txt
11/06/2015  06:56                 3 NOMEGR~3.TXT nome graaaaande 3.txt
11/06/2015  06:56                 3 NOMEGR~4.TXT nome graaaaande 4.txt
11/06/2015  06:57                 3 NODDFD~1.TXT nome graaaaande 5.txt
11/06/2015  06:57                 3 NO8736~1.TXT nome graaaaande 6.txt
               6 arquivo(s)             18 bytes
               2 pasta(s)   242.574.016.512 bytes disponíveis

(NODDFD~1.TXT e NO8736~1.TXT)

A lógica do kernel para gerar o nome 8.3 usa, quando o jogo de truncagens e tiles seguidos de números espicha-se demais, um algoritmo desconhecido de hash, que cria quatro caracteres hexadecimais.

A Tale of Two File Names (username.password) (via OSNews)

Depois de uma sessão de disassembly, o mundo tem agora a felicidade de conhecer o algoritmo antes indocumentado. Segundo comentário no OSNews, um programador da Microsoft diz que a forma descoberta vem desde o Windows 7. Anteriormente era diferente.

O driver vfat do Linux tem seu próprio algoritmo. Quem sabe implementar exatamente o mesmo usado pelo NT nele? E no NTFS-3G? ☺

Aí está a beleza da engenharia reversa.

A propósito, é possível desativar a geração dos nomes 8.3 em volumes NTFS alterando o valor da DWORD HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation para 1.

Comentários

  1. Muito interessante! Podem falar o que quiserem da Microsoft, mas a empresa sempre teve muita preocupação com a retrocompatibilidade.

    ResponderExcluir

Postar um comentário