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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] Función Clean 2.0
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Función Clean 2.0  (Leído 3,509 veces)
0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
[Batch] Función Clean 2.0
« en: 5 Mayo 2009, 05:50 am »

Con Matt actualizamos la función clean que había realizado yo la otra vez, y ahora ha quedado mucho mejor.

Funcionalidad:
-Limpiar carácteres que no estén dentro del rango [0-9] [a-z] [Espacio] en el contenido de las variables.

Mejoras con respecto a la versión anterior:

-Funciona con las extensiones de comando deshabilitadas. (cmd.exe /e:off)

-Ya no es necesario hacer, if defined variable call :clean variable.

-Toda esta función ha sido respuesta al artículo de sirdarckcat: Vulnerabilidades en programas BATCH (buscarlo en google).

código de la función.
Código:
:CLEAN
::deja solo caracteres dentro del rango a-z 0-9 y espacio en el contenido de las variables.
::version 2.0
::Recibe un parametro con el nombre de la variable que se quiere filtrar su contenido.
::Ejemplo:
::call :clean nombreDeMiVariable
::autores: Matt Alvariz , Carlos
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@SET "V=%*"
@SET "S=!%V%!"
@IF NOT DEFINED S EXIT /B 1
@SET "V="
:LOOP
@FOR %%* IN (
" " 0 1 2 3 4 5 6 7 8 9 A B C D E F G
H I J K L M N O P Q R S T U V W X Y Z
) DO @IF /I "!S:~0,1!" EQU "%%~*" SET "V=!V!!S:~0,1!"
@SET "S=!S:~1!"
@IF DEFINED S GOTO :LOOP
@(ENDLOCAL & SET %*=%V%)
@SETLOCAL ENABLEEXTENSIONS
@EXIT /B 0

Ejemplo en acción:
login.cmd
Código:
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

SET /A "I=3"
SET "PWL=ByeWorld"
SET "P=PWL"

:START
@ECHO OFF
CLS
echo.*===============================================================
echo.Bienvenido a Telnet Server de Microsoft.
echo.*===============================================================
IF !I! LEQ 0 EXIT
SET /A "I-=1"
SET "INPUT="
SET /P "INPUT=Password:"
CALL :CLEAN INPUT
@FOR /F %%_ IN ("!P!") DO @IF NOT "!INPUT!"=="!%%_!" (
GOTO :START
)

ECHO.BIENVENIDO.
PAUSE
EXIT /B


:CLEAN
::deja solo caracteres dentro del rango a-z 0-9 y espacio en el contenido de las variables.
::version 2.0
::Recibe un parametro con el nombre de la variable que se quiere filtrar su contenido
::autores: Matt Alvariz , Carlos
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@SET "V=%*"
@SET "S=!%V%!"
@IF NOT DEFINED S EXIT /B 1
@SET "V="
:LOOP
@FOR %%* IN (
" " 0 1 2 3 4 5 6 7 8 9 A B C D E F G
H I J K L M N O P Q R S T U V W X Y Z
) DO @IF /I "!S:~0,1!" EQU "%%~*" SET "V=!V!!S:~0,1!"
@SET "S=!S:~1!"
@IF DEFINED S GOTO :LOOP
@(ENDLOCAL & SET %*=%V%)
@SETLOCAL ENABLEEXTENSIONS
@EXIT /B 0



« Última modificación: 27 Julio 2009, 07:41 am por 0x0309 » En línea

M a t t

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: [Batch] Función Clean 2.0
« Respuesta #1 en: 5 Mayo 2009, 07:56 am »

Sin duda es una buena función, veremos si aparecen bugs.


« Última modificación: 5 Mayo 2009, 14:15 pm por M a t t » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[batch] funcion split
Scripting
z_ane_666 1 1,786 Último mensaje 3 Enero 2011, 20:55 pm
por xassiz~
[BATCH] Colored ECHO función
Scripting
Binary_Death 4 3,789 Último mensaje 24 Julio 2012, 11:26 am
por Eleкtro
Clean Master para Android
Noticias
wolfbcn 1 1,447 Último mensaje 28 Agosto 2013, 13:13 pm
por Hacksturcon
clean install
Java
lazarus86 0 782 Último mensaje 22 Enero 2014, 18:47 pm
por lazarus86
[Batch] funcion comprobación
Scripting
KZN 4 1,551 Último mensaje 19 Marzo 2014, 12:19 pm
por KZN
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines