dissabte, 25 de setembre del 2010

Script per eliminar l'autorun.inf dels discos durs fixos i extraïbles


L'autorun.inf és un arxiu de text que fa servir Windows per executar contingut d'una unitat CD/DVD, un disc dur o un USB, de manera automàtica. 

No és perillós per sí mateix, però si es combina amb un executable maliciós, pot fer que aquest últim s'executi sense que nosaltres hi haguem intervingut. Com que sense l'autorun.inf, l'arxiu maliciós no s'executarà sol, pot ser una bona idea esborrar sistemàticament aquest arxiu dels nostres discos durs fixos i extraïbles.

Mirant per internet hi ha diversos scripts per netejar l'autorun.inf. Jo n'he creat un que està basat en  algun d'aquests scripts però n'he millorat la part de la detecció de les unitats susceptibles de ser netejades, els discos durs. Els altres scripts anaven intentant esborrar l'autorun.inf de totes les unitats, tant si eren un CD/DVD, un disc dur remot o un disc dur local. Aquest script, que consta d'una part en VB i una en batch, només neteja els discos durs fixos i extraïbles, i no ho intenta en discos durs remots, unitats CD/DVD ni memòries RAM.

L'arxiu autorunCleaner.vbs és el que selecciona les unitats que s'han de netejar, i li envia com a paràmetre a l'arxiu autorunCleaner.bat, que és el que executa la neteja. Només cal que copiïs els dos codis següents en dos arxiu de text anomenant-los, autorunCleaner.vbs i autorunCleaner.bat, respectivament. S'han de posar els dos arxius a l'arrel del disc c:\, i si els vols a un altre lloc, hauràs de modificar l'arxiu autorunCleaner.vbs tal i com s'explica als comentaris de codi. Un cop fet això, has d'executar l'arxiu autorunCleaner.vbs i es farà la neteja.

autorunCleaner.vbs i autorunCleaner.bat
'Script per combinar amb l'arxiu 'autorunCleaner.bat' 'Declaracions i inicialitzacions Dim Fso :Set Fso = CreateObject("Scripting.FileSystemObject") Dim count, Drv, Obj count = 0 'Es recorren totes les unitats que hi hagi For Each Obj In Fso.Drives 'Busca unitats que estiguin preparades i que sigui discos fixes o extraibles, ni discos remots, 'ni cd/dvd ni memòries ram If Obj.IsReady and not(Obj.DriveType = 4 or Obj.DriveType = 5 or Obj.DriveType = 6) then Drv = Obj.DriveLetter 'S'executa el bat amb el valor de la variable 'Drv' com a paràmetre Set WShell = CreateObject("WScript.Shell") 'S'ha de canviar la ruta de l'arxiu 'autorunCleaner.bat' i posar la que toqui WShell.Run "C:\autorunCleaner.bat " & Drv count = count + 1 'Si vols un missatge que digui quina unitat s'ha netejat, descomenta la línia següent 'WScript.Echo "S'ha netejat la unitat " &; Drv &; ":" End If Next 'Si vols un missatge que digui quantes unitats s'han netejat, descomenta la línia següent 'WScript.Echo "S'han netejat " & count & "discos."
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  @echo off cd %1: attrib autorun.inf -a -h -s -r del /s /q /f autorun.inf attrib Recycler -a -h -s -r cd Recycler attrib autorun.exe -a -h -s -r del /s /q /f autorun.exe attrib Recycler -a -h -s -r cd Recycler attrib autorun.exe -a -h -s -r del /s /q /f autorun.exe cd\ attrib Recycler +a +h +s +r 

Cap comentari:

Publica un comentari a l'entrada