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.
(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
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
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
.
Muito interessante! Podem falar o que quiserem da Microsoft, mas a empresa sempre teve muita preocupação com a retrocompatibilidade.
ResponderExcluir