Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: gurrumichi en 16 Diciembre 2012, 06:09 am



Título: Ayuda Como ocultar con asterisco (caracteres)
Publicado por: gurrumichi en 16 Diciembre 2012, 06:09 am
hola soy nuevo. soy un novato de el batch lo considero una excelente herramienta para el areia de automatizacion é eficiente, y lo estoy aprendiendo, y estoy haciendo mi 3° batch mas grande  ;D, pero primero voy explicar en que consiste mi batch lo llamo "Secure Folder" es un batch como muchos que andan por ahi para bloquear carpetas, pues lo mismo hace el mio pero con diferente forma,

Resulta que quiero que al momento de introducir el "Password" salgan asteriscos en vez de los caracteres. aqui en el foro ya observe un topic similar pero cabe decir que en mi batch no empleo el comando "for" por que no le entiendo ni "J".

cabe destacar que no a este codigo no le entendi mucho de como funciona, y si alguien me puede explicar de como funcionel comando "for"

el punto es: seria tan amable alguien de explicarme de como puedo ocultar esos caracteres de forma sencilla sin emplear una gran cantidad de codigo como este ?

Código
  1. @echo off
  2. Title Usando Asteriscos en una Clave
  3. ::Escrito por Carlos
  4.  
  5. if not exist "reply.exe" (call:reply)
  6. set PWL=
  7. set letra=
  8. set/a contador=0
  9. set /a TAM=10
  10. set PASSWORD=
  11.  
  12. call:prompt
  13.  
  14. :inicio
  15. reply.exe
  16. set letra=%errorlevel%
  17. if [%letra%]==[13] (goto:fin) else (call:ascii %letra%)
  18. goto:eof
  19.  
  20. :fin
  21. set/p pass=Password <nul
  22. if [%PASSWORD%]==[%PWL%] (set/p pass=correcta<nul) else (set/p pass=incorrecta<nul)
  23. goto menu
  24.  
  25. goto:eof
  26.  
  27. :ascii
  28. if %1==8 (call:borrar)
  29. if %contador% GEQ %TAM% (goto:inicio)
  30. if %1==48 (set PWL=%PWL%0&goto:contador)
  31. if %1==49 (set PWL=%PWL%1&goto:contador)
  32. if %1==50 (set PWL=%PWL%2&goto:contador)
  33. if %1==51 (set PWL=%PWL%3&goto:contador)
  34. if %1==52 (set PWL=%PWL%4&goto:contador)
  35. if %1==53 (set PWL=%PWL%5&goto:contador)
  36. if %1==54 (set PWL=%PWL%6&goto:contador)
  37. if %1==55 (set PWL=%PWL%7&goto:contador)
  38. if %1==56 (set PWL=%PWL%8&goto:contador)
  39. if %1==57 (set PWL=%PWL%9&goto:contador)
  40. if %1==65 (set PWL=%PWL%A&goto:contador)
  41. if %1==66 (set PWL=%PWL%B&goto:contador)
  42. if %1==67 (set PWL=%PWL%C&goto:contador)
  43. if %1==68 (set PWL=%PWL%D&goto:contador)
  44. if %1==69 (set PWL=%PWL%E&goto:contador)
  45. if %1==70 (set PWL=%PWL%F&goto:contador)
  46. if %1==71 (set PWL=%PWL%G&goto:contador)
  47. if %1==72 (set PWL=%PWL%H&goto:contador)
  48. if %1==73 (set PWL=%PWL%I&goto:contador)
  49. if %1==74 (set PWL=%PWL%J&goto:contador)
  50. if %1==75 (set PWL=%PWL%K&goto:contador)
  51. if %1==76 (set PWL=%PWL%L&goto:contador)
  52. if %1==77 (set PWL=%PWL%M&goto:contador)
  53. if %1==78 (set PWL=%PWL%N&goto:contador)
  54. if %1==79 (set PWL=%PWL%O&goto:contador)
  55. if %1==80 (set PWL=%PWL%P&goto:contador)
  56. if %1==81 (set PWL=%PWL%Q&goto:contador)
  57. if %1==82 (set PWL=%PWL%R&goto:contador)
  58. if %1==83 (set PWL=%PWL%S&goto:contador)
  59. if %1==84 (set PWL=%PWL%T&goto:contador)
  60. if %1==85 (set PWL=%PWL%U&goto:contador)
  61. if %1==86 (set PWL=%PWL%V&goto:contador)
  62. if %1==87 (set PWL=%PWL%W&goto:contador)
  63. if %1==88 (set PWL=%PWL%X&goto:contador)
  64. if %1==89 (set PWL=%PWL%Y&goto:contador)
  65. if %1==90 (set PWL=%PWL%Z&goto:contador)
  66. if %1==97 (set PWL=%PWL%a&goto:contador)
  67. if %1==98 (set PWL=%PWL%b&goto:contador)
  68. if %1==99 (set PWL=%PWL%c&goto:contador)
  69. if %1==100 (set PWL=%PWL%d&goto:contador)
  70. if %1==101 (set PWL=%PWL%e&goto:contador)
  71. if %1==102 (set PWL=%PWL%f&goto:contador)
  72. if %1==103 (set PWL=%PWL%g&goto:contador)
  73. if %1==104 (set PWL=%PWL%h&goto:contador)
  74. if %1==105 (set PWL=%PWL%i&goto:contador)
  75. if %1==106 (set PWL=%PWL%j&goto:contador)
  76. if %1==107 (set PWL=%PWL%k&goto:contador)
  77. if %1==108 (set PWL=%PWL%l&goto:contador)
  78. if %1==109 (set PWL=%PWL%m&goto:contador)
  79. if %1==110 (set PWL=%PWL%n&goto:contador)
  80. if %1==111 (set PWL=%PWL%o&goto:contador)
  81. if %1==112 (set PWL=%PWL%p&goto:contador)
  82. if %1==113 (set PWL=%PWL%q&goto:contador)
  83. if %1==114 (set PWL=%PWL%r&goto:contador)
  84. if %1==115 (set PWL=%PWL%s&goto:contador)
  85. if %1==116 (set PWL=%PWL%t&goto:contador)
  86. if %1==117 (set PWL=%PWL%u&goto:contador)
  87. if %1==118 (set PWL=%PWL%v&goto:contador)
  88. if %1==119 (set PWL=%PWL%w&goto:contador)
  89. if %1==120 (set PWL=%PWL%x&goto:contador)
  90. if %1==121 (set PWL=%PWL%y&goto:contador)
  91. if %1==122 (set PWL=%PWL%z&goto:contador)
  92. goto:inicio
  93.  
  94. :contador
  95. set/a contador+=1
  96. call:asterisc
  97. goto:inicio
  98.  
  99. :borrar
  100. if %contador% LEQ 0 (goto:eof)
  101. set/a contador-=1
  102. call:prompt
  103. for /l %%a in (1,1,%contador%) do (call:asterisc)
  104. set PWL=%PWL:~0,-1%
  105. goto:eof
  106.  
  107. :reply
  108. (
  109. echo n reply.dat
  110. echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
  111. echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
  112. echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
  113. echo rcx
  114. echo 002E
  115. echo w0
  116. )>reply.dat
  117. type reply.dat|debug>NUL 2>&1
  118. del/f/q/a "REPLY.EXE">NUL 2>&1
  119. ren reply.dat "REPLY.EXE"
  120. goto:eof
  121.  
  122. :prompt
  123. cls
  124. set/p pass=Enter password:<nul
  125. goto:eof
  126.  
  127. :asterisc
  128. set/p pass=*<nul
  129. goto:eof


de antemano gracias


Título: Re: Ayuda Como ocultar con asterisco (caracteres)
Publicado por: Eleкtro en 16 Diciembre 2012, 10:32 am
Puedes usar la utilidad EditVar (x86 o x64 dependiendo de tu SO) > http://www.westmesatech.com/editv.html

Código
  1. CHCP 1252 >NUL
  2. editv64 -m -p "Esciba la contraseña >>" "PASSWORD"
  3. Echo %PASSWORD%

(http://img803.imageshack.us/img803/1623/prtscrcaptureq.jpg)

Saludos.


Título: Re: Ayuda Como ocultar con asterisco (caracteres)
Publicado por: Meine programmen en 16 Diciembre 2012, 21:14 pm
Respescto a lo de FOR, http://ss64.com/nt/ es una buena pagina, esta en ingles, pero es muy util.


Título: Re: Ayuda Como ocultar con asterisco (caracteres)
Publicado por: Binary_Death en 17 Diciembre 2012, 01:00 am
El código que pusiste se puede acortar muchísimo. No es necesario meter una gran cantidad de líneas para hacer eso.

Mira la variable %=ExitCodeAscii% que te ahorra esa cantidad de condicionales ingente. Aquí puedes encontrar información sobre esas variables no documentadas: http://www.robvanderwoude.com/ntset.php

Yo personalmente, además de que no me gustan demasiado las aplicaciones de terceros en batch, no te recomendaría que crearas una dependencia para este caso.

Ahora, si dices que eres nuevo con batch y todavía no sabes hacerlo, pues bueno, entonces te recomiendo usar un script batch de otra persona, pero no uses un ejecutable.

Un código bastante pequeño podría ser este: http://byte-inside.blogspot.com.es/2011/01/batch-input-hidden-password.html

Aunque no muestra asteriscos, sino que directamente no muestra nada, como si estuvieras en telnet por ejemplo ;)

Un saludo.


Título: Re: Ayuda Como ocultar con asterisco (caracteres)
Publicado por: gurrumichi en 17 Diciembre 2012, 05:52 am
bueno vamos a probar con esto. aver como nos va  ;D  pero lo que no entiendo son el monton de caracteres como $ " " etc..


Título: Re: Ayuda Como ocultar con asterisco (caracteres)
Publicado por: gurrumichi en 18 Diciembre 2012, 05:53 am
voy acer un poco mas directo con mi batch este es mi codigo que yo hice,

Código
  1. :login_pwd
  2. if exist reporte.txt goto :denied
  3. cls
  4. echo -----------------------
  5. echo :::: Secure Folder ::::
  6. echo -----------------------
  7. echo ::: Inicie  Sesion :::
  8. echo ///////////////////////
  9. echo //      Password.    //
  10. echo ///////////////////////
  11. echo --------------------------------
  12. echo [ Olvido los Datos de Usuario? ]
  13. echo [ Presione la letra "R" para   ]
  14. echo [ Restablecer.                 ]
  15. echo --------------------------------
  16. set /p SF_login_pwd=Password :    <-------- aqui quiero que no se muestren los        caracteres o que salgan asteriscos
  17.  
  18. if %SF_login_pwd%== r goto :SF_Rest
  19. findstr /x "%SF_login_pwd%" usuario.txt
  20. if %errorlevel%== 0 goto :SF_win7
  21. cls
  22. if exist reporte1.txt echo reporte3>>reporte3.txt
  23. if exist reporte3.txt echo reporte3>>reporte3.txt
  24.  
  25. echo -----------------------
  26. echo :::: Secure Folder ::::
  27. echo -----------------------
  28. echo Contraseña %SF_login_pwd% Incorreta.
  29. echo      Intentelo de nuevo.
  30. goto :login_pwd

de antemano gracias



[MOD] Usa el botón de insertar código, no el de citar.


Título: Re: Ayuda Como ocultar con asterisco (caracteres)
Publicado por: Segadorfelix en 18 Diciembre 2012, 18:09 pm
Utilizando el código de Germaniac
Código
  1. @echo off
  2. setlocal enableextensions enabledelayedexpansion
  3. for /f %%i in ('"echo.exit|"%comspec%" /d /k prompt $h"') do set "bs=%%i"
  4. :init
  5. cls
  6. set "(="
  7. set ")=%tmp%\%random%.tmp"
  8. if exist "%)%" del "%)%" 2>nul
  9.    if exist reporte.txt goto :denied
  10.    cls
  11.    echo.
  12.    echo -----------------------
  13.    echo :::: Secure Folder ::::
  14.    echo -----------------------
  15.    echo ::: Inicie  Sesion :::
  16.    echo.
  17.    echo ///////////////////////
  18.    echo //      Password.    //
  19.    echo ///////////////////////
  20.    echo --------------------------------
  21.    echo [ Olvido los Datos de Usuario? ]
  22.    echo [ Presione la letra "R" para   ]
  23.    echo [ Restablecer.                 ]
  24.    echo --------------------------------
  25.    echo.
  26. set /p "=Password:"<nul
  27. for /l %%i in (1,1,9) do set /p "=%bs%"<nul
  28. start /b "" "%comspec%" /d /v:on /c "set/p(=&(if defined ( (echo(^!(^!) else echo()>"%)%""
  29. :loop
  30. set /p "=%bs%P%bs%"<nul
  31. if not exist "%)%" goto :loop
  32. set "pwl="
  33. set /p "pwl="<"%)%"
  34. del "%)%" 2>nul
  35. set "SF_login_pwd=!pwl!"    
  36.    if %SF_login_pwd%== r goto :SF_Rest
  37.    findstr /x "%SF_login_pwd%" usuario.txt
  38.    if %errorlevel%== 0 goto :SF_win7
  39.    cls
  40.    echo.
  41.    if exist reporte1.txt echo reporte3>>reporte3.txt
  42.    if exist reporte3.txt echo reporte3>>reporte3.txt
  43.  
  44.    echo -----------------------
  45.    echo :::: Secure Folder ::::
  46.    echo -----------------------
  47.    echo.
  48.    echo Contraseña %SF_login_pwd% Incorreta.
  49.    echo      Intentelo de nuevo.
  50.    pause >nul
  51.    goto :init
  52.    exit
Seria, algo por el estilo. SaluDoss