Título: [BATCH] Problema con diccionario Publicado por: zikotik 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 Título: Re: [BATCH] Problema con diccionario Publicado por: Eleкtro en 17 Julio 2013, 03:55 am Título: Re: [BATCH] Problema con diccionario Publicado por: zikotik en 17 Julio 2013, 03:59 am Gracias por tu respuesta, pero lamentablemente me devuelve un valor nulo, no el símbolo tal. Intenté tanto con ^ como con ^^ y nada. Título: Re: [BATCH] Problema con diccionario Publicado por: Eleкtro 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
...Ó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 Aquí tienes una alternativa funcional para mostrar los dos caracteres: Código
Tampoco me voy a esmerar mucho más tratándose de Batch y sus limitaciones. Saludos! Título: Re: [BATCH] Problema con diccionario Publicado por: zikotik 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... Título: Re: [BATCH] Problema con diccionario Publicado por: engel lex en 17 Julio 2013, 19:23 pm por otro lado... que tan rapido podria ser batch para esto? :s
Título: Re: [BATCH] Problema con diccionario Publicado por: zikotik 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). Título: Re: [BATCH] Problema con diccionario Publicado por: Eleкtro 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 Título: Re: [BATCH] Problema con diccionario Publicado por: Binary_Death 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 ;) Título: Re: [BATCH] Problema con diccionario Publicado por: Geormarsch en 26 Agosto 2013, 15:50 pm http://foro.elhacker.net/scripting/batch_ice_gen_10_generador_de_wordlistcombolistwepwpaserialcookiesip-t351916.0.html (http://foro.elhacker.net/scripting/batch_ice_gen_10_generador_de_wordlistcombolistwepwpaserialcookiesip-t351916.0.html)
ahí un generador que hizo el elektro ;) |