[Analisis] Conexion_Save (By: Javi)

Iniciado por Xa0s, Junio 10, 2010, 11:13:45 AM

Tema anterior - Siguiente tema

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

Este post fue hecho por el usuario Boogeyman en un viejo foro mio. El codigo es de Javi, el analisis del mismo es de Boogeyman.

Código: php
@echo off
color 8a
title Guardar conexiones activas:. v 1.01                                                                    Por Javi
:Alfa
cls
echo.
echo Pulse una tecla para guardar todas las conexiones . . .
pause >nul
set horainicio=%TIME%
cls
echo %DATE% --- %TIME% ------------------------------------------- > Conexiones.txt
echo ------------------------------------------------------------- >> Conexiones.txt
netstat -a >> Conexiones.txt
echo [========                        ] 25%%
echo ------------------------------------------------------------- >> Conexiones.txt
netstat -a -n >> Conexiones.txt
cls
echo [================                ] 50%%
echo ------------------------------------------------------------- >> Conexiones.txt
netstat -a -b -n >> Conexiones.txt
cls
echo [========================        ] 75%%
echo ------------------------------------------------------------- >> Conexiones.txt
ipconfig /all >> Conexiones.txt
cls
echo [================================] 100%%
echo ------------------------------------------------------------- >> Conexiones.txt
For /f "tokens=14 skip=5" %%x IN ('ipconfig') Do set ip=%%x
echo .
echo ..
echo ...
echo ....
echo Conexiones momentaneas guardadas exitosamente . . .
echo Configuraciones guardadas exitosamente . . . . . . .
echo Ambos se encuentran guardadas en el mismo directorio
echo que este programa (Conexiones.txt) . . . . . . . . .
echo Escaneo iniciado a la/s %horainicio% y finalizado a
echo la/s %TIME% - - Fecha: %DATE%
echo Su IP privado es: %ip%
pause
:Menu
cls
echo.
echo 1- Repetir
echo.
echo 2- Salir
echo.
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo Í                        Í
echo Í       » J@vi           Í
echo Í                        Í
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo.
set /p var=
if %var%==1 goto :Alfa
if %var%==2 exit
if %var% GTR 2 goto :Error
:Error
cls
echo Error!
pause >nul
goto :Menu
exit


Ahora vamos por partes, primero el encabezado del programa:

Código: php
@echo off
color 8a
title Guardar conexiones activas:. v 1.01


1- El "@echo off" sirve para desactivar el eco del comando. Con esto conseguimos que no ponga en cada comando de dónde proviene y lo que está ejecutando.

2- Con el comando "color" se consigue cambiar el color del cmd. Los números y letras sirven para hacer diferentes combinaciones. Para más información teclea color/? en el cmd. En este caso se crearían letras verdes sobre un fondo negro.

3- El comando "title" cambia el título del programa por lo que venga después. En este caso "Agenda"

Código: php
:Alfa
cls
echo.
echo Pulse una tecla para guardar todas las conexiones . . .
pause >nul
set horainicio=%TIME%
cls


1- Crea la recepción ":start" que después se llegará a ella a través del comando "goto". Así: "goto start"
2- "cls" sirve para borrar todas las letras que haya en el cmd.
3- "echo." sirve para saltarse un renglón y "echo" sirve para mostrar mensajes. Con él se pueden hacer menús bonitos.
4- "pause>nul" sirve para pausar el intérprete sin mostrar ningún mensaje, ya que "pause" a solas muestra el mensaje de: "Pulse una tecla para continuar"

5- Ahora, gracias al comando "set" establece la variable "horainicio" y se le asigna el contenido "%time%", que para quien no lo sepa, es una variable que muestra la hora exacta del momento en que se usó.

6- Borra la pantalla.

Código: php
echo %DATE% --- %TIME% ------------------------------------------- > Conexiones.txt
echo ------------------------------------------------------------- >> Conexiones.txt
netstat -a >> Conexiones.txt
echo [========                        ] 25%%
echo ------------------------------------------------------------- >> Conexiones.txt
netstat -a -n >> Conexiones.txt
cls
echo [================                ] 50%%
echo ------------------------------------------------------------- >> Conexiones.txt
netstat -a -b -n >> Conexiones.txt
cls
echo [========================        ] 75%%
echo ------------------------------------------------------------- >> Conexiones.txt
ipconfig /all >> Conexiones.txt
cls
echo [================================] 100%%
echo ------------------------------------------------------------- >> Conexiones.txt
For /f "tokens=14 skip=5" %%x IN ('ipconfig') Do set ip=%%x


Vale, esta es la parte de mucho código y pocas nueces. Si o dais cuenta, menos una o dos cosas distintas, es todo igual.

1- Muestra un mensaje en el que figura la fecha y la hora exacta y lo redirecciona a un archivo que crea gracias al símbolo ">" llamado "Conexiones.txt". Después redirecciona un montón de renglones.

2- El comando "netstat" sirve para que aparezcan en pantalla el estado de las conexiones. El atributo "-a" muestra todas las conexiones y puertos de escucha de tu PC. Después lo redirecciona a "Conexiones.txt"

3- Las tres líneas siguientes hacen lo mismo que antes, sólo que está vez se le añade a "netstat" el atributo "-n", que muestra número de puertos y direcciones en formato numérico. Por lo que ya se descartan todas las direcciones con letras.

4- En las tres líneas siguientes hace otra vez lo mismo. Pero está vez se le añade otro atributo más, el atributo "-b". Este sirve para mostrar el ejecutable que pertenezca a la creación de cada conexión o puerto de escucha. Esto es posible que no funcione en algunos orenadores, pero en cualquier caso, es para eso. (Todo redireccionado a "Conexiones.txt"

5-Ahora, hace lo mismo que antes con una pequeña excepción. En vez de "netstat + atributo" usa "ipconfig". Que cómo se puede deducir sirve para "configuración ip". Este comando muestra todo sobre tu IP. Y su atributo "/all" sirve para mostrar información detallada. Redirecciona esto a "Conexiones.txt"

6- Lo mismo menos el comando "for". Este comando es el más poderoso de todos los del Shell Scripting Batch. Y es muy difícil de entender si no lo sabes, una vez lo entiendes te parece poca cosa. Vamos paso a paso con su estructura.
"For /f "tokens=14 skip=5" %%x IN ('ipconfig') Do set ip=%%x"
"for" es el comando. El atributo "/f" sirve para buscar algo en algún archivo o comando, entre otras cosas. Con "tokens" se saltan 14 palabras, y con skip 5 líneas desde el inicio del programa/comando. "%%x" es el nombre de la variable con la que llamaremos a la operación. "in" sirve para decir en dónde vas a usar el comando, en este caso en el comando "ipconfig". "do" es lo que se pone antes de las órdenes; y lo que viene a continuación son las órdenes. En este caso guardaría la variable "ip" cómo resultado de la operación "%%x". En resumen, obtendría información del comando ipconfig y la guardaría como una variable.

Código: php
echo .
echo ..
echo ...
echo ....
echo Conexiones momentaneas guardadas exitosamente . . .
echo Configuraciones guardadas exitosamente . . . . . . .
echo Ambos se encuentran guardadas en el mismo directorio
echo que este programa (Conexiones.txt) . . . . . . . . .
echo Escaneo iniciado a la/s %horainicio% y finalizado a
echo la/s %TIME% - - Fecha: %DATE%
echo Su IP privado es: %ip%
pause


1- Mensajes de puntitos y letras.
2- Las variables muestran su contenido si se ponen entre porcentajes.
3- Muestra tú IP privada gracias a que antes la ha almacenado con el "for".
4- Pausa con el mensajito.

Código: php
:Menu
cls
echo.
echo 1- Repetir
echo.
echo 2- Salir
echo.
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo Í                        Í
echo Í       » J@vi           Í
echo Í                        Í
echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo.
set /p var=
if %var%==1 goto :Alfa
if %var%==2 exit
if %var% GTR 2 goto :Error


1- Recepción ":Menu"
2- Borra la pantalla.
3- Renglón en blanco, mensaje, renglón en blanco, mensaje y renglón en blanco.
4- Aunque nosotros veamos un montón de "Í", lo que se ve en "batch" es un bonito cuadro con el nombre del autor dentro.
5- Renglón en blanco.
6- Gracias al atributo "/p" le asigna el contenido que tú escribas a continuación a la variable "var"
7- El comando "si condicional" elabora una condición, si se cumple ejecuta lo que haya a continuación. Si no se cumple, recurre al "else".

Código: php
:Error
cls
echo Error!
pause >nul
goto :Menu
exit


1- Recepción.
2- Borra la pantalla.
3- Mensaje de error.
4- Pausa nula.
5- Va hacia ":Menu"
6- Sale del programa.

*Conclusión: Es un programa que sirve para obtener datos privados de otro usuario.

Espero que hayan aprendido; cualquier duda no duden en posteearla.

Saludos
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta