Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: 0x0309 en 29 Abril 2009, 02:35 am



Título: [BATCH]Funcion Password
Publicado por: 0x0309 en 29 Abril 2009, 02:35 am
última versión:

Código:
::FUNCION PASSWORD
::VERSION B
::TESTEADO EN WINDOWS XP
::NO FUNCIONA EN SISTEMAS DE 64 BITS
::OBTIENE UNA PASSWORD Y LA DEVUELVE FILTRADA.
::SOLO SE PERMITEN LETRAS Y NUMEROS.
::ME HE DIVERTIDO CREANDO ESTA FUNCION PUES NUNCA HABIA JUGADO CON ANSI.SYS
::PENSE QUE NO SE PODIA EN XP Y SI SE PUEDE
::CON ANSI.SYS CAMBIO EL COLOR DE FONDO Y DE LETRAS A NEGRO
::AUTOR: CARLOS


@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
PUSHD "%TEMP%"
(SET PASSWORD=)

SET NOMBRE=CONFIG.NT
SET ARCHIVO=%Windir%\SYSTEM32\%NOMBRE%
SET ARCHIVO_RESPALDO=%ARCHIVO%.BAK
IF EXIST "%ARCHIVO_RESPALDO%" DEL /F /Q /A "%ARCHIVO_RESPALDO%" >NUL 2>&1
IF EXIST "%ARCHIVO%" TYPE "%ARCHIVO%" > "%ARCHIVO_RESPALDO%"
IF EXIST "%ARCHIVO%" DEL /F /Q /A "%ARCHIVO%" >NUL 2>&1

FOR %%A IN (
"DOSONLY"
"DOS=HIGH, UMB"
"FILES=40"
"DEVICE=%WINDIR%\SYSTEM32\ANSI.SYS /X"
) DO ECHO:%%~A>>"%ARCHIVO%"

DEL /F /Q /A "ESC.KEY" >NUL 2>&1
FOR %%A IN (
"N ESC.KEY"
"E 0000 1B"
"R CX"
"0001"
"W 0"
"Q"
) DO ECHO:%%~A>>"ESC.KEY"

TYPE ESC.KEY | DEBUG >NUL 2>&1
FOR /F %%A IN (ESC.KEY) DO (SET ESCAPE=%%A)
DEL /F /Q /A "ESC.KEY" >NUL 2>&1
DEL /F /Q /A "PWL.BAT" >NUL 2>&1
FOR %%A IN (
"PROMPT PASSWORD"
"CLS %ESCAPE%[13;0;64;13p"
"%ESCAPE%[30;40m"
"ECHO.%ESCAPE%[6A"
"IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 TYPE CON >PWL.DAT"
"EXIT"
) DO ECHO:%%~A>>"PWL.BAT"

COMMAND.COM /CPWL.BAT
CLS
DEL /F /Q /A "PWL.BAT" >NUL 2>&1
FOR /F "TOKENS=* EOL=%ESCAPE%" %%A IN (PWL.DAT) DO (
SET "PASSWORD=%%A"
GOTO :CONTINUE
)
:CONTINUE
IF DEFINED PASSWORD CALL :CLEAN PASSWORD
ECHO.SU PASSWORD ES :%PASSWORD%

::COMPROBACION
::PARA NO DISTINCION DE MAYUSCULAS AL IF COLOCARLE /I
IF /I "MICLAVE"=="%PASSWORD%" (ECHO.TU CLAVE ES MICLAVE) ELSE (
ECHO.TU CLAVE NO ES MICLAVE
)
DEL /F /Q /A "PWL.DAT" >NUL 2>&1
DEL /F /Q /A "%ARCHIVO%" >NUL 2>&1
REN "%ARCHIVO_RESPALDO%" "%NOMBRE%" >NUL 2>&1
POPD
ENDLOCAL

PAUSE
CLS
GOTO :EOF

:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:CLEAN
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Autor Carlos
::version 1.0 more restricted
    SETLOCAL ENABLEDELAYEDEXPANSION
    IF NOT DEFINED %~1 (GOTO:_CLEANE) || (GOTO:_CLEANE)
    SET "CONTENT=!%~1!"
    IF NOT DEFINED CONTENT (GOTO:EOF)
    SET /A COUNT=0
    :_LOOP
        SET "CHAR=!CONTENT:~%COUNT%,1!"
        IF NOT DEFINED CHAR (GOTO:_ENDLOOP)
        SET ADD=FALSE
        FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO (
            IF [^!CHAR!] EQU [%%A] (SET ADD=TRUE)
        )
        FOR %%A IN (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 [^!CHAR!] EQU [%%A] (SET ADD=TRUE)
        )
        IF /I [!ADD!] EQU [TRUE] (
            SET "STRING=!STRING!!CHAR!"
        )
        SET /A COUNT +=1
        GOTO:_LOOP
    :_ENDLOOP
        ENDLOCAL&&SET "%~1=%STRING%"
        GOTO:EOF
    :_CLEANE
        ECHO.CLEAN FUNCTION RECEIVE A DEFINED VARIABLE.
        PAUSE
        GOTO:EOF
:::::::::::::::::::::::::::::::::::::::::::::::::::::::


versión anterior:
Código:
::FUNCION PASSWORD
::TESTEADO EN WINDOWS XP
::OBTIENE UNA PASSWORD Y LA DEVUELVE FILTRADA.
::SOLO SE PERMITEN LETRAS Y NUMEROS.
::ME HE DIVERTIDO CREANDO ESTA FUNCION PUES NUNCA HABIA JUGADO CON ANSI.SYS
::PENSE QUE NO SE PODIA EN XP Y SI SE PUEDE
::CON ANSI.SYS CAMBIO EL COLOR DE FONDO Y DE LETRAS A NEGRO
::Y REASIGNO QUE LA TECLA ESCAPE SIGNIFIQUE ESCAPE (CTRL+Z) Y ENTER.
::ESTO ES PARA QUE CUANDO PRESIONE ESCAPE NO DEBA PRESIONAR ENTER.
::ESTO ES UTILIZADO PARA SALIR DE UN TYPE CON
::AUTOR: CARLOS


@ECHO OFF
SETLOCAL
PUSHD "%TEMP%"
(SET PASSWORD=)

SET NOMBRE=CONFIG.NT
SET ARCHIVO=%Windir%\SYSTEM32\%NOMBRE%
SET ARCHIVO_RESPALDO=%ARCHIVO%.BAK
IF EXIST "%ARCHIVO_RESPALDO%" DEL /F /Q /A "%ARCHIVO_RESPALDO%" >NUL 2>&1
IF EXIST "%ARCHIVO%" TYPE "%ARCHIVO%" > "%ARCHIVO_RESPALDO%"
IF EXIST "%ARCHIVO%" DEL /F /Q /A "%ARCHIVO%" >NUL 2>&1

FOR %%A IN (
"DOSONLY"
"DOS=HIGH, UMB"
"FILES=40"
"DEVICE=%WINDIR%\SYSTEM32\ANSI.SYS /X"
) DO ECHO:%%~A>>"%ARCHIVO%"

DEL /F /Q /A "ESC.KEY" >NUL 2>&1
FOR %%A IN (
"N ESC.KEY"
"E 0000 1B"
"R CX"
"0001"
"W 0"
"Q"
) DO ECHO:%%~A>>"ESC.KEY"

TYPE ESC.KEY | DEBUG >NUL 2>&1
FOR /F %%A IN (ESC.KEY) DO (SET ESCAPE=%%A)
DEL /F /Q /A "ESC.KEY" >NUL 2>&1

DEL /F /Q /A "PWL.BAT" >NUL 2>&1
FOR %%A IN (
"%ESCAPE%[30;40m"
"ECHO.%ESCAPE%[2J"
"%ESCAPE%[27;26;13p"
"IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 TYPE CON >PWL.DAT"
"%ESCAPE%[0m"
"ECHO.%ESCAPE%[2J"
"EXIT"
) DO ECHO:%%~A>>"PWL.BAT"

ECHO.A CONTINUACION ESCRIBA SU PASSWORD.
ECHO.CUANDO TERMINE DE ESCRIBIRLA PRESIONE ESCAPE. NO PRESIONE ENTER.
PAUSE
COMMAND.COM /CPWL.BAT
CLS
DEL /F /Q /A "PWL.BAT" >NUL 2>&1
FOR /F "TOKENS=* EOL=%ESCAPE%" %%A IN (PWL.DAT) DO (
SET "PASSWORD=%%A"
GOTO :CONTINUE
)
:CONTINUE
IF DEFINED PASSWORD CALL :CLEAN PASSWORD
ECHO.SU PASSWORD ES:%PASSWORD%

::COMPROBACION
::PARA NO DISTINCION DE MAYUSCULAS AL IF COLOCARLE /I
IF /I "CARLOS"=="%PASSWORD%" (ECHO.ERES CARLOS) ELSE (
ECHO.NO ERES CARLOS
)
DEL /F /Q /A "PWL.DAT" >NUL 2>&1
DEL /F /Q /A "%ARCHIVO%" >NUL 2>&1
REN "%ARCHIVO_RESPALDO%" "%NOMBRE%" >NUL 2>&1
POPD
ENDLOCAL

PAUSE
GOTO :EOF

:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:CLEAN
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Autor Carlos
::version 1.0 more restricted
    SETLOCAL ENABLEDELAYEDEXPANSION
    IF NOT DEFINED %~1 (GOTO:_CLEANE) || (GOTO:_CLEANE)
    SET "CONTENT=!%~1!"
    IF NOT DEFINED CONTENT (GOTO:EOF)
    SET /A COUNT=0
    :_LOOP
        SET "CHAR=!CONTENT:~%COUNT%,1!"
        IF NOT DEFINED CHAR (GOTO:_ENDLOOP)
        SET ADD=FALSE
        FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO (
            IF [^!CHAR!] EQU [%%A] (SET ADD=TRUE)
        )
        FOR %%A IN (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 [^!CHAR!] EQU [%%A] (SET ADD=TRUE)
        )
        IF /I [!ADD!] EQU [TRUE] (
            SET "STRING=!STRING!!CHAR!"
        )
        SET /A COUNT +=1
        GOTO:_LOOP
    :_ENDLOOP
        ENDLOCAL&&SET "%~1=%STRING%"
        GOTO:EOF
    :_CLEANE
        ECHO.CLEAN FUNCTION RECEIVE A DEFINED VARIABLE.
        PAUSE
        GOTO:EOF
:::::::::::::::::::::::::::::::::::::::::::::::::::::::


Título: Re: [BATCH]Funcion Password
Publicado por: Darioxhcx en 29 Abril 2009, 04:26 am
sos de las personas que con un pan te hace un sandwich... dijera un amigo
ya habia visto un code tullo parecido que hacia la misma funcion.. este es mas corto xP
como siempre man
muy bueno

un saludo


Título: Re: [BATCH]Funcion Password
Publicado por: EddyW en 29 Abril 2009, 04:35 am
Si esta bien pero no funciono bien en mi PC tuve que volver los archivos que modifico otra vez...
http://foro.elhacker.net/scripting/batch_es_posible_hacer_password_char_en_batch_pregunta-t253112.0.html (http://foro.elhacker.net/scripting/batch_es_posible_hacer_password_char_en_batch_pregunta-t253112.0.html)
Era que lo postees ahi ya que se estaba hablando sobre el tema..
en el post del link que puse al final postee yo un ejemplo mucho mas simple, como para que pueda ser modificado rapidamente para todo gusto..
SaluDOS!!!


Título: Re: [BATCH]Funcion Password
Publicado por: 0x0309 en 29 Abril 2009, 05:20 am
¿qué no funcionó?
este código no funciona en sistemas de 64 bits, pues utiliza a command.com



Título: Re: [BATCH]Funcion Password
Publicado por: EddyW en 29 Abril 2009, 05:32 am
Yo uso el de 32 bits tengo el command.com..
la parte que no funciono fue que todo aparecio negro..
no aparecio nada solo todo era negro y lo que escribia eso si se que esta bien y que debia de estar de color negro o invisible..
SaluDOS!!!


Título: Re: [BATCH]Funcion Password
Publicado por: 0x0309 en 29 Abril 2009, 05:41 am
esa es la idea que no se muestre la password que escribes. :P


Título: Re: [BATCH]Funcion Password
Publicado por: EddyW en 29 Abril 2009, 05:57 am
No.., eso ya se lo que no se ve tambien era lo del echo, etcetc..
bueno no importa ya esta solucionado..
SaluDOS!!!


Título: Re: [BATCH]Funcion Password
Publicado por: Darioxhcx en 29 Abril 2009, 06:04 am
32 bits me va como piña

un saludo


Título: Re: [BATCH]Funcion Password
Publicado por: Martin-Ph03n1X en 29 Abril 2009, 07:10 am
me dice password me dice loq ue escribi...
y me dice no eres carlos?
y cuando le puse por segunda vez carlos me pone ERES CARLOS....
=S
y luego yo le puse en cmd volor 0a cosa que en el codigo no vi color asi es que le agregue despues de @hecho off, color 0a...
Saludos yq ue alguien me explique.


Título: Re: [BATCH]Funcion Password
Publicado por: 0x0309 en 29 Abril 2009, 08:44 am
se usa ansi.sys para cambiar el color de fondo y de letra a negro, así la password no es leída cuando la escribes.

Para que no sea necesario presionar escape, y simplemente presionen enter he hecho este nuevo código.:

Código:
::FUNCION PASSWORD
::VERSION B
::TESTEADO EN WINDOWS XP
::NO FUNCIONA EN SISTEMAS DE 64 BITS
::OBTIENE UNA PASSWORD Y LA DEVUELVE FILTRADA.
::SOLO SE PERMITEN LETRAS Y NUMEROS.
::ME HE DIVERTIDO CREANDO ESTA FUNCION PUES NUNCA HABIA JUGADO CON ANSI.SYS
::PENSE QUE NO SE PODIA EN XP Y SI SE PUEDE
::CON ANSI.SYS CAMBIO EL COLOR DE FONDO Y DE LETRAS A NEGRO
::AUTOR: CARLOS


@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
PUSHD "%TEMP%"
(SET PASSWORD=)

SET NOMBRE=CONFIG.NT
SET ARCHIVO=%Windir%\SYSTEM32\%NOMBRE%
SET ARCHIVO_RESPALDO=%ARCHIVO%.BAK
IF EXIST "%ARCHIVO_RESPALDO%" DEL /F /Q /A "%ARCHIVO_RESPALDO%" >NUL 2>&1
IF EXIST "%ARCHIVO%" TYPE "%ARCHIVO%" > "%ARCHIVO_RESPALDO%"
IF EXIST "%ARCHIVO%" DEL /F /Q /A "%ARCHIVO%" >NUL 2>&1

FOR %%A IN (
"DOSONLY"
"DOS=HIGH, UMB"
"FILES=40"
"DEVICE=%WINDIR%\SYSTEM32\ANSI.SYS /X"
) DO ECHO:%%~A>>"%ARCHIVO%"

DEL /F /Q /A "ESC.KEY" >NUL 2>&1
FOR %%A IN (
"N ESC.KEY"
"E 0000 1B"
"R CX"
"0001"
"W 0"
"Q"
) DO ECHO:%%~A>>"ESC.KEY"

TYPE ESC.KEY | DEBUG >NUL 2>&1
FOR /F %%A IN (ESC.KEY) DO (SET ESCAPE=%%A)
DEL /F /Q /A "ESC.KEY" >NUL 2>&1
DEL /F /Q /A "PWL.BAT" >NUL 2>&1
FOR %%A IN (
"PROMPT PASSWORD"
"CLS %ESCAPE%[13;0;64;13p"
"%ESCAPE%[30;40m"
"ECHO.%ESCAPE%[6A"
"IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 TYPE CON >PWL.DAT"
"EXIT"
) DO ECHO:%%~A>>"PWL.BAT"

COMMAND.COM /CPWL.BAT
CLS
DEL /F /Q /A "PWL.BAT" >NUL 2>&1
FOR /F "TOKENS=* EOL=%ESCAPE%" %%A IN (PWL.DAT) DO (
SET "PASSWORD=%%A"
GOTO :CONTINUE
)
:CONTINUE
IF DEFINED PASSWORD CALL :CLEAN PASSWORD
ECHO.SU PASSWORD ES :%PASSWORD%

::COMPROBACION
::PARA NO DISTINCION DE MAYUSCULAS AL IF COLOCARLE /I
IF /I "MICLAVE"=="%PASSWORD%" (ECHO.TU CLAVE ES MICLAVE) ELSE (
ECHO.TU CLAVE NO ES MICLAVE
)
DEL /F /Q /A "PWL.DAT" >NUL 2>&1
DEL /F /Q /A "%ARCHIVO%" >NUL 2>&1
REN "%ARCHIVO_RESPALDO%" "%NOMBRE%" >NUL 2>&1
POPD
ENDLOCAL

PAUSE
CLS
GOTO :EOF

:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:CLEAN
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Autor Carlos
::version 1.0 more restricted
    SETLOCAL ENABLEDELAYEDEXPANSION
    IF NOT DEFINED %~1 (GOTO:_CLEANE) || (GOTO:_CLEANE)
    SET "CONTENT=!%~1!"
    IF NOT DEFINED CONTENT (GOTO:EOF)
    SET /A COUNT=0
    :_LOOP
        SET "CHAR=!CONTENT:~%COUNT%,1!"
        IF NOT DEFINED CHAR (GOTO:_ENDLOOP)
        SET ADD=FALSE
        FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO (
            IF [^!CHAR!] EQU [%%A] (SET ADD=TRUE)
        )
        FOR %%A IN (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 [^!CHAR!] EQU [%%A] (SET ADD=TRUE)
        )
        IF /I [!ADD!] EQU [TRUE] (
            SET "STRING=!STRING!!CHAR!"
        )
        SET /A COUNT +=1
        GOTO:_LOOP
    :_ENDLOOP
        ENDLOCAL&&SET "%~1=%STRING%"
        GOTO:EOF
    :_CLEANE
        ECHO.CLEAN FUNCTION RECEIVE A DEFINED VARIABLE.
        PAUSE
        GOTO:EOF
:::::::::::::::::::::::::::::::::::::::::::::::::::::::



Título: Re: [BATCH]Funcion Password
Publicado por: Martin-Ph03n1X en 29 Abril 2009, 09:04 am
yo apenas estoy aprendiendo epro no es malo preguntar verdad ^-^
lo que pasa es que no entiendo donde esta cifrado el cambio de color
me imagino que esta a qui verdad? pero como puedo saber mas sobre esto?
Citar
SET ARCHIVO=%Windir%\SYSTEM32\%NOMBRE%
SET ARCHIVO_RESPALDO=%ARCHIVO%.BAK
IF EXIST "%ARCHIVO_RESPALDO%" DEL /F /Q /A "%ARCHIVO_RESPALDO%" >NUL 2>&1
IF EXIST "%ARCHIVO%" TYPE "%ARCHIVO%" > "%ARCHIVO_RESPALDO%"
IF EXIST "%ARCHIVO%" DEL /F /Q /A "%ARCHIVO%" >NUL 2>


Título: Re: [BATCH]Funcion Password
Publicado por: SmartGenius en 29 Abril 2009, 14:22 pm
Muy buen codigo, gracias por el aporte......sabes que no tengo criticas contra ti :D

Saludos.


Título: Re: [BATCH]Funcion Password
Publicado por: 0x0309 en 29 Abril 2009, 14:49 pm
gracias. El código que cambia el color de texto y de fondo a negro es:
Código:
"%ESCAPE%[30;40m"
pero requiere tener cargado ansi.sys y en xp ser ejecutado con command.com no con cmd.exe