Método de prueba
Panda no parece revelar el mecanismo exacto de su "vacuna", lo cual es comprensible, ya que es básicamente seguridad a través de la oscuridad . Si sabe cómo funciona, puede revertir los efectos y la "vacuna" se vuelve inútil.
Descargué e instalé Panda USB Vaccine y "vacuné" mi unidad flash, descargué la partición de la unidad flash con dd para Windows usando los comandos
dd --list
dd if=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} of=C:\vaccinated.img
donde xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxestá el GUID proporcionado por el primer comando, abierto c:\vaccinated.imgen un editor hexadecimal y buscado AUTORUN.
¿Qué hace la vacuna USB?
La entrada para AUTORUN.INFcomienza con los siguientes doce bytes:
41 55 54 4F 52 55 4E 20 49 4E 46 42
Los primeros once bytes son solo el nombre de archivo 8.3 con espacio :AUTORUN INF
El último byte especifica los atributos del archivo y su representación binaria es:
01000010
De acuerdo con la especificación del sistema de archivos EFI FAT32 de Microsoft , este último byte es un campo de bits que toma la siguiente forma:
XYADVSHR
donde los bits A, D, V, S, Hy Rson 1si y sólo si el archivo está archivado, un directorio, el identificador de volumen 1 , un archivo de sistema, oculto o de sólo lectura. AUTORUN.INFestá oculto, ya que Hestá establecido en 1.
Los bits Xy Yestán reservados y ambos deberían estarlo 0. Sin embargo, USB Vaccine se establece Yen 1.
Lo que dice la especificación
Los dos bits superiores del byte de atributo están reservados y siempre deben establecerse en 0 cuando se crea un archivo y nunca se modifican o se miran después de eso.
Además, recomienda para la validación del contenido del directorio:
Estas pautas se proporcionan para que las utilidades de mantenimiento de disco puedan verificar las entradas de directorio individuales para "corrección" mientras mantienen la compatibilidad con futuras mejoras a la estructura de directorios.
NO mire el contenido de los campos de entrada de directorio marcados como reservados y suponga que, si tienen un valor distinto de cero, son "incorrectos".
NO restablezca el contenido de los campos de entrada de directorio marcados reservados a cero cuando contienen valores distintos de cero (bajo el supuesto de que son "incorrectos"). Los campos de entrada del directorio se designan reservados , en lugar de ser cero . Deben ser ignorados por su aplicación. Estos campos están destinados a futuras extensiones del sistema de archivos. Al ignorarlos, una utilidad puede continuar ejecutándose en futuras versiones del sistema operativo.
Lo que realmente pasa
CHKDSK ciertamente sigue la especificación e ignora la AUTORUN.INFentrada que el controlador FAT32 no entiende, pero el propio Windows no parece cumplir con el requisito de la especificación de no volver a mirar nunca los bits reservados : Cualquier tipo de acceso (que no sea enumerar el archivo y sus atributos) es denegado.
Por ejemplo, el comando
DIR /A /Q
afirma que el dueño de AUTORUN.INFes .... Como FAT32 no admite la propiedad de archivos, debería indicarlo \All.
La razón de este comportamiento inesperado es que, de acuerdo con FAT32 - Wikipedia # Entrada de directorio , Windows usa el bit Yinternamente para señalar un nombre de dispositivo de caracteres (CON, PRN, AUX, CLOCK $, NUL, LPT1, COM1, etc.), y No debería estar presente en los dispositivos de almacenamiento. 2
En una forma de hablar, USB Vaccine engaña a Windows para que asuma que AUTORUN.INFno es un archivo real, sino un dispositivo, del cual no puede leer ni escribir.
Cómo borrar el archivo
Si usted tiene acceso directo al sistema de archivos, basta conjunto Ya 0(cambiar el byte 42a 02) para hacer que el archivo de nuevo eliminable. También puede establecer el primer byte de la entrada del directorio en E5, marcando directamente el archivo como eliminado. 3
Otra opción sería usar un controlador diferente. Ubuntu 12.04, por ejemplo, puede eliminar el archivo sin problemas. En realidad, automáticamente "arregla" la entrada del directorio cuando la lee. 4 4
1 Este atributo se utiliza, por ejemplo, para la etiqueta de volumen o la carpeta Información del volumen del sistema .
2 Ciertamente lo suficiente, el establecimiento Xa 1no parece tener ningún efecto.
3 Verifiqué esto cambiando los bytes correspondientes de C:\vaccinated.imgcon un editor hexadecimal y escribiendo la imagen modificada en la unidad flash usando el siguiente comando:
dd if=C:\vaccinated.img of=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
4 Si bien es una desviación evidente de la especificación, parece estar pensada. Ubuntu deja Xintacto si está configurado en 1, ya que no hace daño. Configurar el Ybit 1fácilmente podría ser maltratado por una aplicación maliciosa, por ejemplo, creando un archivo indeleble que ocupe todo el espacio libre de la unidad.