(Batch) Es Posible hacer password char en batch? (Pregunta)

Iniciado por maty_16_94, 27 Abril 2009, 11:12 AM

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

EddyW

Cita de: 0x0309 en 28 Abril 2009, 13:07 PM
Conozco otra forma de hacerlo también en batch, que es usando batch, debug, ansi.sys, command.com, aunque no lo he probado, pero pienso que debe funcionar. Si a alguien le interesa lo posteo, sino no.


Si sobre eso este post, postea ese code claro que nos interesa, yo igual posteare el mio solo que tiene un pequeño error que le arreglare luego..
SaluDOS!!!

maty_16_94

Cita de: 0x0309 en 28 Abril 2009, 13:07 PM
Conozco otra forma de hacerlo también en batch, que es usando batch, debug, ansi.sys, command.com, aunque no lo he probado, pero pienso que debe funcionar. Si a alguien le interesa lo posteo, sino no.



Post it please!

EddyW

Para no abrir tantos post sobre el tema lo posteare aqui y asi para el proximo que pregunte los mismo le damos este post de referencia...
OK, ya arregle mi code lo simplifique lo mas que pude con menos lineas..
Código (dos) [Seleccionar]
echo off
title .:: Usando PasswordChar en una Clave BY 3D1 ::.
del /F /Q /A %tmp%\key.exe >nul 2>&1
del /F /Q /A %tmp%\key.dat >nul 2>&1
del /F /Q /A %tmp%\Key.vbs >nul 2>&1
del /F /Q /A %tmp%\Key.txt >nul 2>&1
(
echo n key.dat
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.
)>%tmp%\key.dat
(
echo echo off
echo cd %tmp%\
echo cls
echo type key.dat^|debug^>NUL 2^>^&1
echo ren key.dat KEY.EXE
echo del %%0
echo exit
)>%tmp%\key.bat
start /MIN %comspec% /c %tmp%\key.bat

cls
set /a numchar=0
set /p passw=<nul
set /p=Escriba su contraseña:<nul
:k
key
if %errorlevel%==13 (
goto :m
)
if %errorlevel%==8 (
if %numchar%==0 (
goto :k
) else (
echo wscript.stdout.write chr(8^) ^& chr(32^) ^& chr(8^) >%tmp%\Key.vbs
cscript //nologo %tmp%\Key.vbs
set /a numchar=%numchar%-1
(
echo set obj = CreateObject("Scripting.filesystemobject"^)
echo x = obj.opentextfile("%tmp%\Key.txt"^).Readline
echo obj.Createtextfile("%tmp%\Key.txt", true^).write mid(x,1,len(x^)-1^)
)>%tmp%\Key.vbs
wscript %tmp%\Key.vbs
)
) else (

set /p"=*"<nul

echo wscript.stdout.write chr(%errorlevel%^) >%tmp%\Key.vbs
cscript //nologo %tmp%\Key.vbs>>%tmp%\Key.txt
set /a numchar=%numchar%+1
)
goto :k
:m
set /p PWD=<%tmp%\Key.txt
del /F /Q /A %tmp%\key.exe >nul 2>&1
del /F /Q /A %tmp%\key.dat >nul 2>&1
del /F /Q /A %tmp%\Key.vbs >nul 2>&1
del /F /Q /A %tmp%\Key.txt >nul 2>&1

:::::::::::::::::::::::::::::::::::::::::::::::::::::
:::: .:: Usando PasswordChar en una Clave ::.    ::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::
:::: Aqui va el resto del code...                ::::
:::: la password se almacena en la variable PWD  ::::
:::: puede cambiar el nombre a la variable PWD   ::::
:::: por otra y no influira en el cambio del code::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::

msg * %PWD%

Como ven al final la password se va a la variable PWD pueden cambiarla si quieren, no arruinara el code...
y en vez de los asteriscos tambien pueden usar otro caracter modificando esta parte del code:
set /p"=*"<nul
solo reemplazando * por otro caracter, puede ser por puntos la carita feliz, signos de interrogacion o alguna letra o numero, igual funciona..
SaluDOS!!!
PD: Espero les guste lo simplifique lo mas que pude para que pueda ser modificable para el gusto de cada uno..

leogtz

Aqui un codigo que hace lo mismo, es de Timo Salmi:
@echo off & setlocal enableextensions
:: Build a Visual Basic Script
set vbs_=%temp%\tmp$$$.vbs
set skip=
findstr "'%skip%VBS" "%~f0" > "%vbs_%"
::
:: Prompting without linefeed as in Item #15
echo.|set /p="Password: "
:: Run the script with Microsoft Windows Script Host Version 5.6
for /f "tokens=* delims=" %%a in ('
  cscript //nologo "%vbs_%"') do set MyPass1=%%a
::
echo.
echo.|set /p="Retype  : "
for /f "tokens=* delims=" %%a in ('
  cscript //nologo "%vbs_%"') do set MyPass2=%%a
::
:: Clean up
for %%f in ("%vbs_%") do if exist %%f del %%f
::
:: Demonstrate the result
echo.
if "%MyPass1%"=="%MyPass2%" (
  echo The entered password was %MyPass1%
  ) else (
  echo No match)
endlocal & goto :EOF
'
'The Visual Basic Script
Set WshPass = WScript.CreateObject("ScriptPW.Password") 'VBS
Password=WshPass.GetPassWord() 'VBS
WScript.Echo PassWord 'VBS

Salida:

C:\>code
Password:
Retype  :
The entered password was Leo

C:\>
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

EddyW

Ese no muestra asteriscos, es igual al que posteo NovLucker...
solo no muestra lo que escribes..
SaluDOS!!!

0x0309

Cita de: maty_16_94 en 29 Abril 2009, 02:57 AM
Cita de: 0x0309 en 28 Abril 2009, 13:07 PM
Conozco otra forma de hacerlo también en batch, que es usando batch, debug, ansi.sys, command.com, aunque no lo he probado, pero pienso que debe funcionar. Si a alguien le interesa lo posteo, sino no.



Post it please!

Aquí está el código:
http://foro.elhacker.net/scripting/batchfuncion_password-t253336.0.html

Cita de: 3D1 en 29 Abril 2009, 18:29 PM
Ese no muestra asteriscos, es igual al que posteo NovLucker...
solo no muestra lo que escribes..
SaluDOS!!!
Unix like.

Novlucker

Cita de: 3D1 en 29 Abril 2009, 18:29 PM
Ese no muestra asteriscos, es igual al que posteo NovLucker...
solo no muestra lo que escribes..
SaluDOS!!

Si, pero igualmente esta un poco más prolijo y se nota más el trabajo en batch  :P
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

0x0309

el código de timo pienso que tiene un problema, que es cuando presionas backspace.

Por ejemplo:
si escribes en la primera password:
qbasic
y en la segunda escribes:
qbasic[backspace,borramos la c]c
dice que no concuerdan.


EddyW

Cita de: 0x0309 en 29 Abril 2009, 21:12 PM
el código de timo pienso que tiene un problema, que es cuando presionas backspace.

Por ejemplo:
si escribes en la primera password:
qbasic
y en la segunda escribes:
qbasic[backspace,borramos la c]c
dice que no concuerdan.


Si yo tambien le acabo de notar ese error..
Cita de: Leo Gutierrez. en 29 Abril 2009, 19:25 PM
Para mi mejor, que no muestre asteriscos.  ::)
Bueno eso a veces depende, ahi veces que ise Batch que te piden user y pass y como hay users inexpertos como no se ven los asteriscos
dicen que no escribe o no funciona el code...
SaluDOS!!!