Professional Documents
Culture Documents
# Fichero: sgen.pl
# Fecha: 09-02-2011
# Version 1.3
# Autor: |FluiD| (migue_lin@msn.com)
# Descripcion: Generador de diccionarios.
#
# Este programa es software libre; puedes redistribuirlo y/o modificarlo
# bajo los trminos de la Licencia Publica General GNU (GPL) publicada
# por la Free Software Foundation; en su versin numero 3, o (bajo tu
# criterio) la ultima versin. Mira http://www.fsf.org/copyleft/gpl.txt
#
# Este programa se distribuye SIN GARANTIA de ningn tipo.
#
##########################################################################
NOTAS
==============
La verdadera peculiaridad de este generador se encuentra
en las opciones en las que acepta strings o cadenas, este
puede tratar una cadena de caracteres como si fuera una
unica variable reduciendo asi las combinaciones del generador,
por supuesto esto es solo util si crees conocer un patron
que pueda contener la contrasea a buscar (explicare esto
mas abajo).
El generador esta programado en perl bajo linux.
Quien sepa programar y vea el codigo vera que no es ninguna
maravilla, es mas, esta programado en ratos libres y durante
unos cuantos meses, asi que tardaba mas tiempo en engancharme
por donde me habia quedado que realmente el tiempo que estaba
programando, y muchas veces he tenido que duplicar alguna
subrutina y modificar algo por que en la manera en la cual la
empece no me sevia para reutilizar, vamos, chapucillas...
El generador se ha convertido a .exe con la aplicacion
Perl2exe (www.indigostar.com/perl2exe.htm). En la web
dice que el .exe corre a una velocidad similiar al script
original, yo personalmente me quedo con el script en
Linux.
Para ejecutarlo en linux escribid en la consola:
"perl sgen.pl", sin las comillas (por supuesto teneis que tener
perl instalado, pero hoy en dia todas las distribuciones
vienen con un interprete, asi que no debeis tener ningun
problema) o con "./sgen.pl" si este tiene permisos de ejecucion.
Tambien podeis instalar un interprete perl para windows y
hacerlo funcionar en la consola de msdos escribiendo
perl sgen.pl, y por supuesto usando el .exe que
nos evitara tener que instalar nada.
Si se ejecuta con el parametro -x -X <num> genera por STDOUT (por
pantalla) diccionarios aleatorios hexadecimales (en mayusculas o
minusculas dependiendo de -x -X) con la longitud igual a <num>.
Permite abrir varias veces la aplicacion, con lo cual puedes
generar mas de un diccionario al mismo tiempo, eso si
repartiendo la cpu entre los diccionarios que se estan
generando en ese momento, aumentando el tiempo de generacion.
ALGUNAS PRUEBAS
================
Las pruebas se han efectuado en un AMD Athlon64 X2 5200+ (2x2700Mhz)
Tarda aproximadamente 2 min 30 seg en generar un giga, no es
que sea muy rapido, pero es algo mas que algunos de los que he probado.
-Letras minusculas:
5 variables -> 79 Mb
6 Variables -> 2,30 Gb y unos 5,30 min.
7 variables -> 67,3 Gb y unas 3 horas.
8 variables -> Ni lo intento.
-Numeros:
7 variables -> 85,8 Mb
8 variables -> 953 Mb poco mas de 2 min.
9 variables -> 10 Gb
10 variables -> En tus manos lo dejo.
Ahora imaginad si combinamos las mayusculas y las minusculas.
Y mayusculas, minusculas y numeros?
El problema no es solo el tiempo de generacion del diccionario
y el espacio que puede llegar a ocupar, y el mayor problema es
la aplicacion que tiene que comprobar todas y cada una de estas
entradas en el diccionario y su velocidad.
Opcion 1.-Dic. letras minusculas
================================
Genera todas las combinaciones de letras minusculas en la longitud
que se le indique, no esta incluida la letra .
############################################
IMPORTANTE
############################################
Opciones 9,10,11,12,13 Diccionarios con strings
================================================
Estos generadors son exactamente iguales a los anteriores, pero
tienen una particularidad, y es que permiten incluir una cadena
o string que se tratara como una variable, este string puede ser
cualquier cosa, desde un signo de puntuacion hasta una palabra
completa. Me explico. Imaginamos que queremos introducir un string
como "pepito", y le decimos que pruebe con una longitud de 5 variables
todos los numeros, el generador hara:
pepito00000
pepito00001
...
pepito99999
y volvera a empezar:
0pepito0000
0pepito0001
...
9pepito9999
hasta:
99999pepito
En pocas palabras tratara al string como un "todo" y probara todas
las combinaciones que se podrian dar.
El string solo cambiara de posicion, pero de forma completa,
no se separa.
Esto es aplicable a todas las opciones que usan strings.
Esto reduce enormente las combinaciones a generar si sabemos o
creemos saber parte de la contrasea que adamos buscando.
Aqui podemos incluir cualquier signo de puntuacion y caracter que
queramos.
Bueno ahi van unas horas de trabajo, espero que os sea util y por
supuesto espero que si hay algun error me lo hagais saber a
migue_lin@msn.com
|FluiD|