Alguém usou minha unidade USB e, ao devolvê-la, encontrei uma autorun.inf
que não pode ser removida. Tentei alterar o atributo do arquivo, que é apenas H (nem mesmo definido como arquivo do sistema), mas continua dizendo Acesso negado.
O USB está definido no FAT32. Ao perguntar ao meu amigo, ele me disse que usa o Panda USB Vaccine
Como eles fazem isso? Estou tentando usar algum editor de setor de disco, mas não tenho idéia de qual arquivo hexadecimal eles alteram para criar esse tipo de arquivo e excluí-lo novamente. A formatação da unidade a remove, mas estou curioso para saber como definir esse tipo de atributo de arquivo.
windows
filesystems
fat32
file-attributes
MegaNairda
fonte
fonte
Respostas:
Método de teste
O Panda parece não revelar o mecanismo exato de sua "vacina", o que é compreensível, já que é basicamente segurança através da obscuridade . Se você souber como funciona, poderá reverter os efeitos e a "vacina" se tornará inútil.
Baixei e instalei o Panda USB Vaccine e "vacinei" minha unidade flash, despejei a partição da unidade flash com o dd for windows usando os comandos
onde
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
é o GUID fornecido pelo primeiro comando, abertoc:\vaccinated.img
em um editor hexadecimal e pesquisadoAUTORUN
.O que a Vacina USB faz
A entrada para
AUTORUN.INF
começa com os seguintes doze bytes:Os onze primeiros bytes são apenas o nome do arquivo 8.3 preenchido com espaço :
AUTORUN INF
O último byte especifica os atributos do arquivo e sua representação binária é:
De acordo com a Especificação do sistema de arquivos EFI FAT32 da Microsoft , esse último byte é um campo de bit que assume o seguinte formato:
onde os bits
A
,D
,V
,S
,H
eR
são1
, se e somente se o arquivo é arquivado, um diretório, o ID do volume 1 , um arquivo de sistema, oculto ou somente leitura.AUTORUN.INF
está oculto, poisH
está definido como1
.Os bits
X
eY
são reservados e devem ser ambos0
. No entanto, a Vacina USB defineY
como1
.O que a especificação diz
Além disso, recomenda a validação do conteúdo do diretório:
O que realmente acontece
O CHKDSK certamente segue a especificação e ignora a
AUTORUN.INF
entrada que o driver FAT32 não entende, mas o próprio Windows parece não cumprir o requisito da especificação de nunca olhar novamente para os bits reservados : Qualquer tipo de acesso (exceto a listagem do arquivo e seus atributos) é negado.Por exemplo, o comando
afirma que o proprietário de
AUTORUN.INF
é...
. Como o FAT32 não suporta a propriedade de arquivos, ele deve indicar\All
.A razão desse comportamento inesperado é que, de acordo com a entrada do diretório FAT32 - Wikipedia # , o Windows usa o bit
Y
internamente para sinalizar o nome de um dispositivo de caractere (CON, PRN, AUX, $ RELÓGIO, NUL, LPT1, COM1 etc.) e não deve estar presente em dispositivos de armazenamento. 2De certa maneira, a USB Vaccine engana o Windows, assumindo que
AUTORUN.INF
não é um arquivo real, mas um dispositivo, do qual não pode ler ou gravar.Como excluir o arquivo
Se você tiver acesso direto ao sistema de arquivos, basta definir
Y
para0
(alterar o byte42
para02
) para tornar o arquivo excluído novamente. Você também pode definir o primeiro byte da entrada do diretórioE5
, marcando diretamente o arquivo como excluído. 3Outra opção seria usar um driver diferente. O Ubuntu 12.04, por exemplo, pode excluir o arquivo sem problemas. Na verdade, ele "corrige" automaticamente a entrada do diretório ao lê-la. 4
1 Este atributo é usado para, por exemplo, o rótulo do volume ou a pasta Informações do volume do sistema .
2 Certamente, definir
X
como1
não parece ter nenhum efeito.3 Verifiquei isso alterando os bytes correspondentes de
C:\vaccinated.img
com um editor hexadecimal e gravando a imagem modificada na unidade flash usando o seguinte comando:4 Embora seja um desvio flagrante da especificação, parece ser um pensamento. O Ubuntu deixa
X
intacto se estiver definido1
, pois não faz mal. A configuração doY
bit1
pode ser facilmente abusada por um aplicativo mal-intencionado, criando, por exemplo, um arquivo não excluído que ocupa todo o espaço livre da unidade.fonte
Este é um truque inteligente do sistema de arquivos que explora um nome reservado no espaço para nome Win32. Os detalhes de como a Panda USB Vaccine faz isso estão descritos aqui .
Essencialmente, o software cria uma pasta chamada
autorun.inf
(que impede que um arquivo com o mesmo nome seja criado lá) e, nessa pasta, um arquivo chamadoLTP1
é criado. No DOS,LPT1
refere-se à porta da impressora e o Windows suporta isso para compatibilidade com versões anteriores. Portanto, quando você solicita um arquivo chamadoLPT1
, o Windows tenta abrir a porta da impressora e, de alguma forma, isso impede que a pasta seja excluída normalmente.Quanto a como remover a pasta / arquivo sem formatar a unidade, este artigo da Base de Conhecimento Microsoft fornece algumas dicas:
fonte
AUTORUN.INF
pen drive FAT32, o programa cria uma (com a mesma "caacaa ..." mencionada no artigo) na unidade e prontamente congela. Não tenho nenhum problema para excluir o arquivo de execução automática ...I:\autorun.inf\bdsanitize#\bdsanitize#...
onde#
é "1" ou "2". O arquivo de log também anexou o arquivo / dirname de cada nível com.dir
ou.file
mas isso pode ser mostrado apenas para fins de registro / depuração.autorun.inf
mas depois disso, ela é substituída por umautorun.inf
arquivo . A diferença com aautorun.inf
Panda USB Vaccine é que o arquivo está vazio e não contém o arquivocacaca
criado pelo Panda.