¡Aaaah, los disquetes!… Qué recuerdos. Esos 1.44 MB de almacenamiento infinito donde cabían todos tus documentos de Word; de tantos colores, con sus pegatinas donde apuntabas qué contenían… Tecnología obsoleta. Ahora llevamos dispositivos de almacenamiento USB de 8 gigas o más en lo que ocupa una llave. Sin embargo, de aquellos toscos e ineficientes soportes magnéticos a los actuales, hemos perdido una funcionalidad muy útil por el camino: la pestañita de protección contra escritura. Algo simple y de baja tecnología, pero a su vez de gran importancia.
Sí, es cierto, hoy en día también existen algunos USB con un pequeño switch que los convierte en dispositivos de sólo lectura, al estilo de los viejos disquetes, pero son raros de encontrar. Lo cierto es que la inmensa mayoría de memorias USB están totalmente desprotegidas ante ordenadores desconocidos, lo cual ha hecho que proliferen como moscas los famosos virus de pendrive: esos que se encuentran latentes en el ordenador y te meten todo tipo de mierda en cuanto lo enchufas. Los hay que modifican el archivo «autorun» para que el virus se ejecute automáticamente la próxima vez que uses el USB, los hay que abogan por que tú, pobre inocente, los abras con diferentes artimañas, etc. Y ni que decir tiene que, cuando ese infecto pendrive vuelve a tu ordenador personal, o tienes un buen antivirus alerta o… estás jodido. También cabe la posibilidad de abrirlo con otro sistema operativo que no sea Windows y borrar las amenazas —porque, hasta ahora, la gran mayoría de estos virus (por no decir todos) son para Windows (lo que no quiere decir que los otros sistemas sean invulnerables)—.
Existe software para bloquear la escritura y la ejecución de programas en las unidades extraíbles. Ni siquiera se necesita este software: modificando una clave en el registro de Windows podemos obtener el mismo resultado. Pero todo método que se base en el software para lograr este objetivo es totalmente inútil por la sencilla razón de que sólo nos sirve para nuestro propio ordenador personal. En un ordenador ajeno, la protección por hardware es la única que funciona. El caso es que la metemos por todas partes sin protección (la memoria USB). Y mientras nadie se decida a fabricar el condón USB —esto es sólo un concepto—, tenemos que arreglárnoslas tirando de antivirus y restaurando los pequeños destrozos que sufren nuestros pendrives.
Uno de estos pequeños cabrones troyanos pululan con nocturnidad por los ordenadores de la facultad de Almudena. El modus operandi del susodicho es el siguiente: le otorga los atributos de archivo «oculto» y «del sistema» a las carpetas presentes en la unidad extraíble; después, crea ejecutables con el virus y los renombra para que tengan el mismo nombre que tus carpetas. El resultado es que, cuando vuelves a tu ordenador, no ves tus carpetas, sino virus con el mismo nombre. El antivirus los detecta sin problemas y los borra. Sin embargo, todas las carpetas siguen ocultas y cualquiera las daría por eliminadas.
Obviamente, es un verdadero coñazo dedicarse a cambiar los atributos de las carpetas ocultas cada vez que este virus entra en el pendrive, y tampoco es algo sencillo para un usuario medio. Por ello, he realizado un pequeño script en VBScript que automatice esta tarea. El código es el siguiente:
[code language=»vb»]Dim fso, folder, ruta, result, path
path = "."
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(path)
ruta = folder.path
result = MsgBox("A continuación se va a proceder a eliminar los atributos de todos los archivos de la siguiente carpeta y todas sus subcarpetas:" & vbNewLine & vbNewLine & ruta & vbNewLine & vbNewLine & "¿Desea proceder?", vbOKCancel + vbQuestion, "Restaurar archivos ocultos")
If result = 1 Then
ModifyAttributes(path)
result = MsgBox("Finalizado con éxito", vbOKOnly + vbInformation)
Else
result = MsgBox("No se ha producido ningún cambio", vbOKOnly + vbExclamation)
End If
Function ModifyAttributes(path)
Dim fso, folder, subFlds, subFiles, fld, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(path)
Set subFiles = folder.Files
For Each file in subFiles
file.attributes = 0
Next
Set subFlds = folder.SubFolders
For Each fld in subFlds
fld.attributes = 0
ModifyAttributes(fld)
Next
End Function[/code]
El script podéis descargarlo aquí o copiar el código anterior en un archivo de texto. En ambos casos tendréis que cambiar la extensión del archivo de «.txt» a «.vbs». Para utilizarlo, basta con copiarlo a la unidad extraíble donde se encuentren los archivos ocultos y ejecutarlo allí. Lo que hace es recorrer recursivamente el directorio donde se encuentra y todos los subdirectorios y borrar los atributos de todos los archivos y carpetas.
Sería interesante conocer qué clave del registro es ésa.
La clave es esta:
Para mayor comodidad, descarga esto, descomprime y ejecuta:
Gracias, Iñaki, muy amable:-) Yo también había pensado en dos .reg para habilitar/deshabilitar.
Y ya que estoy comentando, una sugerencia… Creo que no tenéis ninguna opción de suscripción a los comentarios, ¿no? Sería muy cómodo poder suscribirte para leer comentarios y las respectivas respuestas dentro de un artículo.
@danihd: Pincha en el icono RSS que aparecerá en tu navegador junto a la barra de dirección. Ahí puedes suscribirte a los comentarios de todas las entradas o al de una entrada en particular si te encuentras visualizándola.
Gracias nuevamente. No veía el icono en Chrome, pero sí lo vi en Opera y ya entiendo cómo va.
Excelente aporte hno, tbn estudiaré los formatos vbs para poder crear aplicaciones como tu de manera rápida y segura.
Saludos