[BATCH][Ayuda]con script para sabe el nombre de un archivo...

Iniciado por FranciskoAsdf, 8 Mayo 2009, 05:59 AM

0 Miembros y 1 Visitante están viendo este tema.

FranciskoAsdf

hola a todos, saludos!! ^^

Mi problema es el siguiente, lo que pasa es que he estado tratando de hacer un code en batch que me ayude a evitar que mi PC (y el de otros también, si es que me resulta)se infecte con el virus "Autorun.inf", tengo un code bastante bueno, que me detecta si hay pendrives conectadas al PC (Gracias Leo Gutiérrez por ese FOR xD), si las hay les quita los atributos de "Sistema" y "Oculto" a todos los archivos que sean necesarios, además me avisa si hay un archivo llamado "Autorun.inf" en la unidad detectada, y si es así, lo mueve a un carpeta que se llama "VIRUS_BORRAR", hasta ahí todo bien, solo lo ejecuto cuando conecto una usb el PC y listo, ahora el problema es que este archivo siempre viene acompañado de un ejecutable de nombre aleatorio y de extensión aleatoria como por ejemplo:


juyta.exe
ouyae.pif ó
gvaefo.cmd


Estos nombres siempre están "escritos" en el archivo Autorun.inf

En una línea como esta:


SHEll\EXPlorE\cOMmand= juyta.exe
SHEll\EXPlorE\cOMmand = ouyae.pif
SHEll\EXPlorE\cOMmand =gvaefo.cmd


El problema es que como se ve en el ejemplo nunca son iguales las líneas, el signo "=" nunca esta en el mismo lugar, aunque lo demás si como el "SHEll\EXPlorE\cOMmand", solo el signo "=" va cambiando de lugar....

Ahora lo que yo quiero hacer (y que he tratado de todas formas pero no me ha resultado), es saber el nombre del archivo que viene después del signo "=", ya sea de extensión .pif, .cmd ó .exe, para así poder mover el archivo del pendrive a una carpeta que el usuario pueda eliminar después, o simplemente que lo elimine ^^*!
He probado con for, con findstr, pero no me resulta, además no soy muy bueno para usar el for xD!, también he mirado alguno ejemplos de otro tipo de scripts en el foro, pero no me ha resultado, es por eso que estoy haciendo el post, para ver si alguno de Uds. me puede ayudar a solucionar esto....

Espero haberme explicado lo mejor posible... si hay alguna duda por favor postear ;D!!!!!!!!!

Saludos y muchas gracias de ante mano ^^!

Aqui dejo el codigo del programa (de lo que llevo hasta el momento :))
@echo off
TITLE OWNED Autorun.inf v2.1 by Francisko ^^^^
COLOR 1E
IF EXIST %temp%\menushow.bat (DEL %temp%\menushow.bat)
CALL :Primera
CALL %temp%\menushow.bat
echo.
echo _________________________________________________
echo Buscando Memorias Usb's Conectadas al PC ........
echo _________________________________________________
for /f "tokens=1" %%x in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do ( SET mem=%%x)
IF NOT DEFINED mem CALL:ERRORE
ECHO Memorias Usb' conectadas al PC ^:
echo "%mem%"
echo wscript.sleep "1500" > %temp%\timer1.vbs
cscript /nologo %temp%\timer1.vbs
echo _________________________________________________
echo.
Echo Quitando Atributos...
echo _________________________________________________
attrib -r -s -h %mem%\*.* /S /D
ECHO _________________________________________________
echo.
echo Buscando Archivo "Autorun.inf" porfavor espera....
echo wscript.sleep "1250" > %temp%\timer1.vbs
cscript /nologo %temp%\timer1.vbs

IF EXIST "%mem%\Autorun.inf" (
Echo Existe un Archivo llamado "Autorun.inf" en "%mem%"...
echo wscript.sleep "1500" > %temp%\timer1.vbs
cscript /nologo %temp%\timer1.vbs
echo.
Echo Moviendo archivo a carpeta VIRUS_BORRAR
CD /D%mem%
MKDIR VIRUS_BORRAR
move /-Y Autorun.inf %mem%\VIRUS_BORRAR
echo wscript.sleep "1500" > %temp%\timer1.vbs
cscript /nologo %temp%\timer1.vbs
) ELSE (
GOTO :MISTAKE )

echo.
ECHO Todos los comando completados con exito!!
echo wscript.sleep "2000" > %temp%\timer1.vbs
cscript /nologo %temp%\timer1.vbs

start "" /max explorer.exe %mem%
CALL:SALIRE

:ERRORE
echo.
echo No se encontraron Memorias Usb's Conectadas al PC....
echo wscript.sleep "2000" > %temp%\timer1.vbs
cscript /nologo %temp%\timer1.vbs
CALL:SALIRE

:MISTAKE
echo.
echo El Archivo Autorun.inf no existe en "%mem%\" ^:D!!
echo wscript.sleep "2000" > %temp%\timer1.vbs
cscript /nologo %temp%\timer1.vbs
start "" /max explorer.exe %mem%
call:SALIRE

:Primera
echo echo. >>%temp%\menushow.bat
echo echo                 ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» >>%temp%\menushow.bat
echo echo                 º                                            º >>%temp%\menushow.bat
echo echo                 º           OWNED Autorun.inf v2.1           º >>%temp%\menushow.bat
echo echo                 º                    by                      º >>%temp%\menushow.bat
echo echo                 º                 Francisko!                 º >>%temp%\menushow.bat
echo echo                 º                                            º >>%temp%\menushow.bat
echo echo                 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ >>%temp%\menushow.bat
goto :eof

:SALIRE
echo.
echo Terminado.
echo wscript.sleep "1150" > %temp%\timer1.vbs
cscript /nologo %temp%\timer1.vbs
exit


espero que me puedan ayudar ^^, no creo que sea muy complicado, pero a mi no me funciona xDDDD


saludos =)!
Asdf debería ser algún tipo de función.

leogtz

Puedes utilizar algo como esto:

Código (dos) [Seleccionar]
@echo off
for /f "tokens=2* delims==" %%_ in (autorun.txt) do (
echo %%_
)


Salida:
autorun.txt

C:\>type autorun.txt
SHEll\EXPlorE\cOMmand= juyta.exe
SHEll\EXPlorE\cOMmand = ouyae.pif
SHEll\EXPlorE\cOMmand =gvaefo.cmd
C:\>


juyta.exe
ouyae.pif
gvaefo.cmd
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

FranciskoAsdf

muchisimas gracias por tu ayuda leo guitierrez ^^*!

espero que me funcione !!!
:DD

saludos y gracias de nuevo ^^*!
Asdf debería ser algún tipo de función.