elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Quitar este error en batch
0 Usuarios y 3 Visitantes están viendo este tema.
Páginas: 1 2 3 [4] Ir Abajo Respuesta Imprimir
Autor Tema: Quitar este error en batch  (Leído 19,203 veces)
The Last Hero

Desconectado Desconectado

Mensajes: 40


Lucha hasta el final


Ver Perfil
Re: Quitar este error en batch
« Respuesta #30 en: 28 Marzo 2011, 21:22 pm »

Bueno ya hice todo el codigo bien y lo he repasado,sin embargo los procesos y los archivos se unen en una columna. Por ejemplo en archivos no encontrados, aparecen los procesos y los archivos,pero no estan separados por procesos y archivos.

Código:
/Arcihvos no encontrados: 
 
arc1.exe
arch2.exe
arch3.exe
arch4.exe
arch5.exe
arch6.exe
arch8.exe
arch9.exe
arch10.exe
arch11.exe
arch12.exe
arch13.exe
arch14.exe
arch15.exe
arch16.exe
arch17.exe
arch18.exe
arch19.exe
C:\Users\Rafa\Desktop\lista.txt
C:\Users\Rafa\AppData\Local\Temp\archivo.exe
C:\Windows\archivo1.exe
C:\Windows\archivo2.dll
C:\Windows\archivo2.exe
C:\Windows\Temp\archivo1.tmp

Te pego el codigo del batch,espero que este todo bien:

Código:
setlocal enabledelayedexpansion
 Set Token=

for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 delims=;" %%a in ('"echo arc1.exe;arch2.exe;arch3.exe;arch4.exe;arch5.exe;arch6.exe;arch7.exe;arch8.exe;arch9.exe;arch10.exe;arch11.exe;arch12.exe;arch13.exe;arch14.exe;arch15.exe;arch16.exe;arch17.exe;arch18.exe;arch19.exe;arch20.exe;arch21.exe;arch22.exe;arch23.exe;arch24.exe;arch25.exe;"') do (
 
   Set Token=%%a
   call :Comprobarpro
   Set Token=%%b
   call :Comprobarpro
   Set Token=%%c
   call :Comprobarpro
   Set Token=%%d
   call :Comprobarpro
Set Token=%%e
call :Comprobarpro
Set Token=%%f
call :Comprobarpro
Set Token=%%h
call :Comprobarpro
Set Token=%%i
call :Comprobarpro
Set Token=%%j
call :Comprobarpro
Set Token=%%k
call :Comprobarpro
Set Token=%%l
call :Comprobarpro
Set Token=%%m
call :Comprobarpro
Set Token=%%n
call :Comprobarpro
Set Token=%%o
call :Comprobarpro
Set Token=%%p
call :Comprobarpro
Set Token=%%q
call :Comprobarpro
Set Token=%%r
call :Comprobarpro
Set Token=%%s
call :Comprobarpro

)
 
 
 
 
 
 

setlocal enabledelayedexpansion
Set Token=
 
 
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('"echo %userprofile%\Desktop\lista.txt;%Temp%\archivo.exe;%Windir%\archivo1.exe;%Windir%\archivo2.dll;%Windir%\archivo2.exe;%Windir%\Temp\archivo1.tmp;%Windir%\archivo3.exe;%userprofile%\Desktop\archivo1.exe;"') do (
   Set Token=%%a
   call :Comprobar
   Set Token=%%b
   call :Comprobar
   Set Token=%%c
   call :Comprobar
   Set Token=%%d
   call :Comprobar
Set Token=%%e
   call :Comprobar
Set Token=%%f

   call :Comprobar
Set Token=%%h




)
 
Goto :END

 
:Comprobarpro
IF exist %TOKEN% (
 
   Taskkill /F /T /im "!TOKEN!" >NUL 2>&1
   Echo !TOKEN! Se ha eliminado procesos en la memoria
   Echo !TOKEN! >> Archivo.txt
   goto:eof
) ELSE (
      Echo !TOKEN! No se ha encontrado procesos en la memoria
      Echo !TOKEN! >> Archivo2.txt
      goto:eof
)
 
 
 

 
 
 
 
:Comprobar
IF exist %TOKEN% (
attrib -h !TOKEN!
   Del TOKEN \f \q \i \s >NUL 2>&1
   Echo TOKEN Se ha eliminado.
   Echo !TOKEN! >> Archivo.txt
   goto:eof
) ELSE (
      Echo !TOKEN! No se ha encontrado.
      Echo !TOKEN! >> Archivo2.txt
      goto:eof
)
 
 
 
 
 
 
:END
cls
echo+ >> Archivo.txt
Echo /Arcihvos no encontrados: >> Archivo.txt
echo+ >> Archivo.txt
copy Archivo.txt+Archivo2.txt >NUL 2>&1
Del /Q Archivo2.txt >NUL 2>&1
Type Archivo.txt
PAUSE >nul

Creo que esta todo bien, pero solo me sale este error.¿este codigo esta completamente listo para eliminar cualquier proceso y luego eliminar el programa, por muy fuerte que sea?

Bueno y es normal que te canses,asique si le das el visto bueno lo damos esto por solucionado y ya me encargo yo,que tu lo has hecho todo -_-"

Muchas gracias por todo y un saludo


En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #31 en: 28 Marzo 2011, 21:43 pm »

En un rato más tarde me lo repaso, será en un par de horas lo siento, pero mientras te respondo a tu pregunta:

De la manera que se usa DEL y TASKKILL en tu script, lo borra y lo mata segurisimo.
A no ser que.........................

...........Para aumentar la eficacia, te diré 2 cosas:

1.
Código:
takeown /F "RUTA_DEL_ARCHIVO" /D S >nul
icacls "RUTA_DEL_ARCHIVO" /grant Administradores:(D,WDAC) /T >nul

Con ese comando obtienes los privilegios del archivo, esto es útil si el Pc en donde va a ser usado tu batch, el usuario no es administrador y no puede manejar archvos de las otras cuentas siendo un usuario limitado...

2.
No se si lo has pensado, tampoco se si sería útil en tu caso, pero recuerda que siempre puedes implementar en tu script un antivirus.

Ej. A-Squared es gratis, se puede usar mediante la línea de comandos (Como casi todos) pero este me gusta bastante por la rapidez y lo poco que pesa con las firmas.




Código:
a2cmd.exe [path] | [parameters]

Scan parameters (can be used together):

   /f=[], /files=[path]   Scan files. Full path to file or folder required
   /quick                 Scans all active programs, Spyware Traces and
                          TrackingCookies
   /smart                 Good and fast result, but only important folders will
                          be scanned
   /deep                  Slowest scan. All files on all hard disks will be
                          scanned deeply
   /m, /memory            Scan Memory for active Malware
   /t, /traces            Scan for Spyware Traces
   /c, /cookies           Scan for Tracking Cookies

   /fh=[handle] /pid=[PID]            Scan file by handle. Process ID of the
                                      handle is required
   /b=[pointer] /bs=[size] /pid=[PID] Scan buffer. Buffer size and process ID


En tu caso sería, despues de haber eliminado el archivo con DEL, y haber matado el proceso con TASKKILL, pues una última comprobación en esa carpeta haciendo un:

Código:
a2cmd.exe /F="RUTA_DEL_ARCHIVO" /heuristic /archive /delete >NUL >2>&1

Con el >NUL para no mostrar nada en la pantalla... si encuentra algo lo elimina.

Si te ha gustado la idea del antivirus, te diré que con las firmas mas nuevas ocupa unos 80 mb xD. y claro, se puede hacer portable comprimiendolo en un solo ejecutable. Dentro de un rato lo subiré al post ese que he echo de utilidades para el cmd xDDD

Saludosss


En línea

No he vuelto, solo estoy de paso.
The Last Hero

Desconectado Desconectado

Mensajes: 40


Lucha hasta el final


Ver Perfil
Re: Quitar este error en batch
« Respuesta #32 en: 28 Marzo 2011, 21:50 pm »

Pues es una buena idea lo del antivirus...pero colocarlo en mi batch¿tendria que poner su nombre o estaria incumpliendo algun tipo de derecho?¿como puedo meter diversas funciones que solo me interesen?

Bueno esperare tu respuesta del codigo y si pudieras un ejemplo de como integrar una linea en ese comando,ya que tengo pensado agregar servicios y claves del registro,pero esto lo pensare yo solo a partir de lo que me has dado.

Nuevamente muchas gracias pitoloko y un saludo amigo  ::)
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #33 en: 29 Marzo 2011, 03:27 am »

lo de las diversas funciones no te he entendido.


Y por otro lado, en el caso de "A-Squared"...
Sin animo de lucro parece que si lo puedes usar como te de la gana xD

EDITO: Pasate por mi post para bajarte la última versión si no te apetece instalar el antivirus :P.
http://foro.elhacker.net/scripting/batch_packs_de_aplicaciones_varias_para_usar_en_batch-t322976.0.html





Copyright and license:
----------------------

  The Emsisoft Commandline Scanner is free for private use.
  For commercial use, cheap standalone licenses can be purchased.
  
  Emsisoft Anti-Malware licenses include as well the Emsisoft Commandline
  Scanner. Please note that special licenses for using the Commandline
  Scanner on servers for scanning the data flow of a third party (e.g. for
  access or mailbox clients) are available on inquiry. If you want to use
  the software to scan multiple workstation PCs remotely, it is required to
  buy Helpdesk Scanner licenses:
  http://www.emsisoft.com/en/software/helpdesk/  
  
  Please contact us on: corporatesales@emsisoft.com
« Última modificación: 29 Marzo 2011, 04:07 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #34 en: 29 Marzo 2011, 05:16 am »

¿Estas seguro de que quieres usar el modificador "/S" del comando DEL? es para borrar todos los archivos del subdirectorio... :/

Y te lo repito otra vez.......................................

Código:
C:\>del /i
El modificador no es válido: "i".

MIRATE LA AYUDA DE LOS COMANDOS!

DEL /?

Y dentro del FOR hay que usar 2 porcentajes %% porque si pones uno % no lo reconoce, si pones dos %% lo reconoce cono uno %, si pones tres %%% lo reconoce como dos %%,etc..


Los procesos y los archivos se juntaban en la columna porque los estabas guardando en el mismo archivo de texto. Es que te vuelvo a decir lo mismo, los errores de tus scripts son tonterias, que lo modificas sin fijarte lo suficiente...
____________________________________________________________



Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. Set Token=
  4.  
  5. echo /Procesos en memoria: > ArchivoSI.txt
  6.  
  7.  
  8.  
  9. :Procesos
  10. for /f "tokens=1-25 delims=;" %%a in ('"echo proc1.exe;proc2.exe;proc3.exe;proc4.exe;proc5.exe;proc6.exe;proc7.exe;proc8.exe;proc9.exe;proc10.exe;proc11.exe;proc12.exe;proc13.exe;proc14.exe;proc15.exe;proc16.exe;proc17.exe;proc18.exe;proc19.exe;proc20.exe;proc21.exe;proc22.exe;proc23.exe;proc24.exe;proc25.exe;"') do (
  11. Set Token=%%a
  12. call :ComprobarProc
  13. Set Token=%%b
  14. call :ComprobarProc
  15. Set Token=%%c
  16. call :ComprobarProc
  17. Set Token=%%d
  18. call :ComprobarProc
  19. Set Token=%%e
  20. call :ComprobarProc
  21. Set Token=%%f
  22. call :ComprobarProc
  23. Set Token=%%h
  24. call :ComprobarProc
  25. Set Token=%%i
  26. call :ComprobarProc
  27. Set Token=%%j
  28. call :ComprobarProc
  29. Set Token=%%k
  30. call :ComprobarProc
  31. Set Token=%%l
  32. call :ComprobarProc
  33. Set Token=%%m
  34. call :ComprobarProc
  35. Set Token=%%n
  36. call :ComprobarProc
  37. Set Token=%%o
  38. call :ComprobarProc
  39. Set Token=%%p
  40. call :ComprobarProc
  41. Set Token=%%q
  42. call :ComprobarProc
  43. Set Token=%%r
  44. call :ComprobarProc
  45. Set Token=%%s
  46. call :ComprobarProc
  47. Set Token=%%t
  48. call :ComprobarProc
  49. Set Token=%%u
  50. call :ComprobarProc
  51. Set Token=%%v
  52. call :ComprobarProc
  53. Set Token=%%w
  54. call :ComprobarProc
  55. Set Token=%%x
  56. call :ComprobarProc
  57. Set Token=%%y
  58. call :ComprobarProc
  59. Set Token=%%z
  60. call :ComprobarProc
  61. )
  62.  
  63.  
  64.  
  65.  
  66.  
  67. :Archivos
  68. for /f "tokens=1-6 delims=;" %%a in ('"echo %%userprofile%%!!%%Temp%%!!%%Windir%%!!%%Windir%%!!%%Windir%%!!%%Windir%%!!%%Windir%%!!%%userprofile%%\Desktop\archivo1.exe;"') do (
  69.   Set Token=%%a
  70.   call :Comprobar
  71.   Set Token=%%b
  72.   call :Comprobar
  73.   Set Token=%%c
  74.   call :Comprobar
  75.   Set Token=%%d
  76.   call :Comprobar
  77. Set Token=%%e
  78.   call :Comprobar
  79. Set Token=%%f
  80.   call :Comprobar
  81. )
  82. Goto :END
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91. :ComprobarProc
  92. IF exist %TOKEN% (
  93. Taskkill /F /T /IM "!TOKEN!" >NUL 2>&1
  94. Echo !TOKEN! Se ha eliminado procesos en la memoria.
  95. Echo !TOKEN! >> ProcesosSI.txt
  96. goto:eof
  97. ) ELSE (
  98.        Echo !TOKEN! No se ha encontrado procesos en la memoria.
  99.        Echo !TOKEN! >> ProcesosNO.txt
  100.        goto:eof
  101. )
  102.  
  103.  
  104.  
  105.  
  106. :Comprobar
  107. IF exist %TOKEN% (
  108. attrib -h !TOKEN!
  109. Del  !TOKEN! \f \q /A ARSHIAL >NUL 2>&1
  110. Echo !TOKEN! Se ha eliminado.
  111. Echo !TOKEN! >> ArchivoSI.txt
  112.   goto:eof
  113. ) ELSE (
  114.     Echo !TOKEN! No se ha encontrado.
  115. Echo !TOKEN! >> ArchivoNO.txt
  116. goto:eof
  117. )
  118.  
Aqui falta la parte donde hay que copiar los textos bien, no me apetece modificarla porque no tengo ningún proceso corriendo de prueba ni archivos ahora

le faltan cosas, pero no creo que sea tan dificil '¬¬ o puedes usar la utilidad "combine.exe" de un pack del post mio que te he dicho, es más comodo...

en fin Solo hay que arreglarlo un poco:


 
Código
  1. :END
  2. cls
  3. echo+ >> ArchivoSI.txt
  4. Echo /Archivos no encontrados: >> ArchivoSI.txt
  5. echo+ >> ArchivoSI.txt
  6. copy procesossi+procesosno
  7.  
  8. copy los archivos qsi+los q no >NUL 2>&1
  9.  
  10. Copy los archivos+los procesos
  11. Notepad




El comando del antivirus obviamente iria despues del DEL y el TASKKILL, haces un :Call antivirus debajo de :Call comprobar pero la verdad creo que no hace falta, si con el IF EXIST te dice que no existe...pues no existe, pa que XD

De todas formas sería:

Código:
Antivirus.exe "COMANDO_DEL_ANTIVIRUS_EN_!TOKEN!" >nul 2>&1
goto:eof

« Última modificación: 29 Marzo 2011, 05:29 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
The Last Hero

Desconectado Desconectado

Mensajes: 40


Lucha hasta el final


Ver Perfil
Re: Quitar este error en batch
« Respuesta #35 en: 29 Marzo 2011, 20:52 pm »

Perdona pitoloko por contestar tan tarde, pero tenia un examen xD Bueno muchas gracias por haberme ayudado solo me queda una ultima duda(esta vez si,es una sola xD)¿puedo agregar claves del registro para eliminar y servicios tambien para eliminar de la misma forma que lo hemos hecho con los archivos y los procesos?

Y gracias tambien por la paciencia y el codigo, he aprendido mucho gracias a ti.

Un saludo amigo  ::)
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #36 en: 29 Marzo 2011, 21:37 pm »

Hombre, si de la misma forma te refieres a dentro de un FOR, pues si, aunque me parece un poco lío hacerlo de esa manera, sería mejor un

Código:
:call regdel

:regdel
REG DELETE "RUTA" >nul
goto:eof

no se, es como lo haría yo,pero lo puedes hacer donde te de la gana, solo hay que hacerlo bien xD

y para los servicios lo haces con el comando SC delete
(Si el servicio se está ejecutando, primero debes pararlo con SC STOP, y tal vez debas deshabilitarlo tambien)


saludosss
En línea

No he vuelto, solo estoy de paso.
The Last Hero

Desconectado Desconectado

Mensajes: 40


Lucha hasta el final


Ver Perfil
Re: Quitar este error en batch
« Respuesta #37 en: 29 Marzo 2011, 22:45 pm »

Si eso pensaba,primero detenerlo y luego borrarlo,asi borraria mejor los rootkits,que vienen como servicios y ademas el archivo  :xD Bueno por mi tema solucionado y muchas muchas gracias amigo,espero que todo te vaya bien  ;)

Un saludo  ;D
En línea

Páginas: 1 2 3 [4] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que es este batch ?
Scripting
vicecity 2 4,860 Último mensaje 7 Febrero 2004, 19:51 pm
por vicecity
(Soclucionado) [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Scripting
SuperDraco 5 14,548 Último mensaje 23 Enero 2011, 15:23 pm
por SuperDraco
que error tengo en este batch
Scripting
jesusandres1 7 4,257 Último mensaje 7 Agosto 2012, 11:58 am
por Puntoinfinito
¿Cual es el error que estoy cometiendo en este comando de batch? [BATCH]
Scripting
TheFerret 3 3,358 Último mensaje 14 Enero 2015, 21:27 pm
por TheFerret
No se esperaba en este momento. Error [Batch]
Scripting
Fron99 3 4,422 Último mensaje 3 Abril 2017, 12:13 pm
por Fron99
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines