El arte del batcheo : Aprendiendo a usar batch

Saludos Crackeros! el dia de hoy quiero compartir con ustedes un poco de lo que es el tema del "Batcheo" o uso de "Batch" en Windows, esto con el fin de conocer la utilidad de esta poderosa herramienta capaz de simplificarnos la vida de una manera muy util.



Primero debemos entender que Batch no es un lenguaje de programacion sino mas bien es un archivo de procesos, es decir es un archivo que contiene muchas lineas que cumplen ciertos procesos y que en su conjunto cumplen una accion determinada usando comandos de simbolo de sistema (CMD) 



Su facilitad radica en que no es necesario un interpretador, compilador ni nada de eso sino que podemos usar simplemente un block de notas 


Bueno ahora vamos a escribir nuestro primer programa!

Abrimos un block de notas Inicio>Todos los Programas>Accesorios>Block de notas o ejecutamos el proceso notepad

Escribimos el siguiente codigo :

@echo off
title Perucrack.net Una comunidad de informaticos para informaticos
echo presiona una tecla
pause
echo Hola Mundo
pause > nul
exit
Cuando terminamos de escribir cualquier tipo de codigo batch  siempre es necesario guardarlo con la extension .bat


Ahora si podemos ejecutarlo y veremos lo que pasa...

Ahora explicaremos cada una de estas lineas de codigo para saber que es lo que hacer

@echo off : Lo que hace es ocultar todo el codigo que sigue para que no sea visualiado en la ventana y asi al ejecutarlo sea transparente al usuario, en algunos casos lo usan para ocultar los comandos maliciosos que ejecutan acciones como virus

title: Pone un titulo a tu programa

echo: Sirve para imprimir lo que queramos mostrar en pantalla

echo Hola Mundo

Variables :

Es posible introducir variables en BATCH? Pues si al igual que casi todos los lenguajes de programacion podemos introducir variables para nuestros programas.. esto se hace gracias al paremtro "%" con el cual podemos crear variables..pero..¿Que es un variable? es un valor que toma un valor determinado (valga la redundancia) y puede ir cambiando con el tiempo.

Vamos a ver este codigo

Abrimos un block de notas y colocamos :
@echo off
title Perucrack trabajando con variables
echo Este es un tutorial para aprender el uso de variables
echo .
echo Presione una tecla para continuar
pause > nul
set /p nombre=Cual es tu nombre?
set /p profesion=A que te dedicas?
set /p edad= Cual es tu edad?
pause > nul
echo Asi que tu nombre es  %nombre%
echo Te de dicas a %profesion% eso es bueno..
echo pues %nombre% estas en la comunidad PeruCrack tienes %edad% años
pause > nul
exit
 No olvidamos guardarlo con la extension .bat

Como podemos ver set /p nombre ayudara a generar la variable nombre y para luego hacerle la llamada con el aprametro %variable%

Bueno esa es la parte facil..

Ahora podemos tambien usar metodos para inmiscuirnos entre los archivos de windows de una manera facil para eso podemos usar diferentes comandos

Abrimos un block de notas y colocamos :
@echo off
title pruba
echo ejecutaremos el notepad
%homedrive%/windows/system32/notepad.exe
exit
  No olvidamos guardarlo con la extension .bat

 homedrive : Estamos en la raiz del disco y estamos buscando la ruta para ejecutar notepad.exe 

Podemos tambien jugar un poco con nuestros BAT para ejecutar tareas, por ejemplo quiero ejecutar una tarea de apagado todos los dias a una hora determinada.. entonces podemos usar lo siguiente :

@echo off
AT 17:00 shutdown -s -f -t 2 -c "Ejecutando Tarea" >>
c:/windows/system32/windosx.bat
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysin2
/t REG_SZ /d "c:/windows/system32/windosx.bat"
exit
Con esto lograremos ejecutar la tarea "Apagado" con el comando shutdown y el parametro -s para activar el apagado, -f para forzar el cierre de todo -t para especificar los segundos y ademas lo que haremos es registrarlo en el registro de Windows para que esta tarea se ejecute todos los dias

Condicionales : 

El arte del batcheo nos permite tambien hacer uso de condicionales y ponernos en la posicion como si de verdad estuvieramos programando n.n me gusta mucho porque parece (lo es) un lenguaje de tipo scripting como python

Pero bueno vamos a ver el tema de condicionales, aqui usaremos el popular IF para verificar la verdad de una condicion y para eso ejecutaremos el siguiente programa muy facilito

@echo off
set /p ojos=Cuantos ojos tiene un gato?
if %ojos%==2 (echo Tu tambien!) else echo Acaso es un fenomeno?
pause 
Como podemos ver doy inicio a mi programita con @echo off para luego generar mi variable "ojos" y finalmente hacer mi condicional de este tipo :

if %ojos%==2 (echo Tu tambien!) else echo Acaso es un fenomeno?
if %ojos%==2   = Seria lo mismo que decir "Si el numero que colocas en mi variable ojos es igual a 2"
(echo Tu Tambien) = Se ejecuta esta accion,  imprimir el texto "Tu Tambien"
else = Es lo mismo a decir "Si no" osea cualquier respuesta diferente a 2

Tambien podemos usar el if not que seria lo contrario a if, es decir verificaria que un valor no sea igual a la variable y luego ejecutaria una accion determinada. Usando nuestro poderoso ejemplo :

@echo off
set /p ojos=Cuantos ojos tiene un gato?
if not %ojos%==2 (echo Acaso es un fenomeno?) else echo Tu tambien!
pause
Ahora tambien podemos jugar de la misma forma con archivos y con condicionales.. por ejemplo miren lo siguiente :

@echo off
if exist C:\Users\RogerM\Desktop\Hola.bat (echo Tienes un archivo de batcheo) else echo no tienes un archivo de batcheo
pause > nul
Lo que hago aqui con el if exist es consultar si existe un archivo en la ruta especificada, en este caso en mi escritorio quiero saber si hay algun archivo Hola.bat para que despues se pueda ejecutar la orden echo e imprimia "Tienes un archivo de batcheo" y si no tengo un archivo de batcheo (else) imprime  "No tienes un archivo de batcheo"

Ahora podemos tambien usar los condicionales IF para ejecutar menues en cuanto a acciones queramos ejecutar, pongamonos en el caso que estamos en un centro de monitoreo y queremos ejecutar pruebas de conectividad ping a diferentes host o puntos de destino podemos crear un batch en el cual en un solo archivo podamos hacer todo.. vamos a un ejemplo practico

@echo off
:menu
echo 1. Hacer Ping al destino A
echo 2. Hacer Tracert al destino B
set /p var=Que accion quieres ejecutar?

if %var%==1 (goto ping)
if %var%==2 (goto tracert)
if %var%=="" (goto menu)
:ping
ping 192.168.3.2
pause
goto menu
:tracert
tracert 192.168.2.1
pause
goto menu

Veamos el codigo.. lo primero es crear un lote para ello puse :menu mi primer lote se llama menu  luego estoy creando la variable var para grabar en esa variable las opciones del menu 1,2 o vacio (podemos colocar un else y que muestre un mensaje cuando inserten otro valor) entonces lo que hace es ejecutar ciertas acciones que mandemos.


Bucles :



Es muy util tambien el uso de Bucles para realizar nuestros batches, podemos usar bucles para generar de manera repetitiva una determinada accion o tambien si pensamos de manera maliciosa para colapsar un sistema 

@echo off
:bucle
echo Hola Mundo!
goto bucle
Entonces esto lo que hara es ejecutar infinitas veces la accion :bucle el cual imprime Hola Mundo!

Ahora si solo queremos definir un numero determinado de veces la ejecucion de una orden y no queremos que esta sea infinitas veces podemos usar lo siguiente :

@echo off
set var=10
:bucle
if %var%==0 (goto exit) else set /A var=%var%-1
echo Hola Mundo 10 veces!
goto bucle
:exit
pause
exit

Como podemos ver aqui hicimos lo siguiente : definimos una variable var=10 para luego hacer una condicion como un contador el cual al ejecutarlo imprimira unicamente 10 veces el mensaje "Hola Mundo 10 veces!"

Podemos programar acciones de nuestros batcheros en una determinada hora y fecha para por ejemplo planificar que un apagado se realize todos los dias a las 17:30 Hrs para eso podemos usar lo siguiente : 


@echo off
at 17:30 shutdown -s -f -t 1
pause > nul
exit

Que hicimos aqui? Pues como ven usamos el parametro at el cual permite ingresar una hora o fecha determinada para la cual se cumplira una accion en este ejemplo shutdown -s -f -t 1 esto agregara a la programacion que a las 17:30 se ejecute esta accion automaticamente.

Anteriormente vimos tambien como podemos hacer para agregar y programar tareas agregandolas al registro de Windows esto con el fin de que se quede grabado en el corazon de windos :D y se ejecute every day

este comando es muy facil si le ponemos lo siguiente :

@echo off
at 17:30 shutdown -s -f -t 01 > c:/apagar.bat
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysin2
/t REG_SZ /d "c:/apagar.bat"
del %0
exit
Podemos tambien acceder al propio registro de Windows como vimos anteriormente.. pero hay una infinidad de opciones dentro del registro de windows que podemos usar para el bien (o para el mal) aqui explico algunas de esas

REG ADD / Para agregar una clave al registro
REG QUERY / Para consultar una clave
REG EXPORT / Para exportar claves
REG IMPORT / Importa una clave exporta anteriormente con EXPORT.
REG COMPARE / compara una clave con otra.

Redireccionamiento :

Podemos usar la tecnica de redireccionamiento para ello usaremos el simbolo ">" por ejemplo creamos lo siguiente

echo “orden 1” >primerbat.bat
echo “orden 2” >segundobat.bat
Depende de donde estemos podremos crear nuestros archivos bat y almacenarlos (redireccionarlos)

Como ven crackeros lo poderoso y util que es usar el batch para facilitarnos el trabajo cualquier duda no duden en colocarla en los comentarios. Gracias a ti Mad! por las sugerencias en esta publicacion



Powered by Blogger.