Autor
|
Tema: [BATCH] Problema con diccionario (Leído 4,267 veces)
|
zikotik
Desconectado
Mensajes: 59
|
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. 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, !,?,#, @,. :generar echo. !cadena!>>diccionario_!lenght!.txt )
|
|
|
En línea
|
|
|
|
|
zikotik
Desconectado
Mensajes: 59
|
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
Mensajes: 9.885
|
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:
...Ó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. 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 ! ." :generar echo. %1>>"diccionario_ %lenght%.txt" )
Aquí tienes una alternativa funcional para mostrar los dos caracteres: 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 ! ? ." ( )>"%TEMP%\chars.txt" :generar for /F %%c in ('type " %TEMP%\chars.txt"' ) do (call : generar %~1%%c) echo. %1>>"diccionario_ %lenght%.txt" )
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
Mensajes: 59
|
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
|
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
Mensajes: 59
|
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
Mensajes: 9.885
|
@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
Mensajes: 214
|
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. @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
Mensajes: 160
|
|
|
|
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"
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Batch] Problema con el Quick Batch File Compiler
Scripting
|
najmuddin
|
6
|
5,371
|
29 Junio 2008, 08:39 am
por najmuddin
|
|
|
[Batch] Generador de Diccionario
Scripting
|
SmartGenius
|
8
|
7,091
|
16 Diciembre 2008, 19:46 pm
por SmartGenius
|
|
|
[BATCH] Problema con Quick Batch compiler, incluir 2 archivos BAT.
« 1 2 »
Scripting
|
daniel69
|
17
|
13,750
|
31 Mayo 2009, 19:33 pm
por daniel69
|
|
|
[BATCH]Diccionario
Scripting
|
FranciskoAsdf
|
2
|
2,795
|
29 Septiembre 2009, 15:54 pm
por FranciskoAsdf
|
|
|
Problema con diccionario WPA 20 GB
Wireless en Linux
|
David991
|
7
|
11,770
|
22 Noviembre 2010, 20:57 pm
por david020573
|
|