Skip to content

Programa generador de diccionarios

mayo 31, 2008

Esta aplicación la realicé para ayudar en las pruebas de seguridad, especificamente a la hora de probar la fortaleza de contraseñas bajo ataques de fuerza bruta. Lo que hace el programa es generar un listado de todas las posibles combinaciones que se definan, por lo que podemos tener un diccionario de contraseñas de n caracteres en distintos rangos como: todos los numeros, todas las letras, todas las mayusculas, todas las letras y numeros, etc. Acontinuación el código:

 /******************************************************************/
/* GeneradorDiccionario 														*/
/* Version: 1.0																	*/
/* Autor: richie																*/
/* Descripción: Programa que imprime todas las combinaciones		*/
/* posibles para palabras de 1 a 6 caracteres, auxiliar en			*/
/*	pruebas de ataques basados en diccionario. 							*/
/*	Para compilar en Linux: gcc com.c -o com								*/
/* Para correrlo: ./com															*/
/* Para almacenarlo: ./com > diccionario.txt								*/
/******************************************************************/

#include <stdio.h>

//print all possible combinations (numbers, letters, symbols)
//#define MIN 30
//#define MAX 127

//print all binary combinations
//#define MIN 48
//#define MAX 50

//print all CAPITAL letter combinations
//#define MIN 65
//#define MAX 91

//print all lowercase letter combinations
//#define MIN 97
//#define MAX 123

//print all number combinations
#define MIN 48
#define MAX 58

void title();
void one();
void two();
void three();
void four();
void five();

int main() {
	title();
	int number=0;
	printf("Enter the Number of characters in the password(1-5) : ");
	scanf("%d", &number);
	switch(number) {
		case 1:
			one();
			break;
		case 2:
			two();
			break;
		case 3:
			three();
			break;
		case 4:
			four();
			break;
		case 5:
			five();
			break;
		default:
			printf("Out of range, Enter a number between 1 and 5\n");
	}
	return 0;
}

void one() {
	int i=0;
	for(i=MIN; i<MAX; i++) {
		printf("%c\n", i);
	}
}

void two() {
	int i=0;
	int j=0;
	for(i=MIN; i<MAX; i++) {
		for(j=MIN; j<MAX; j++) {
			printf("%c%c\n", i, j);
		}
	}
}

void three() {
	int i=0;
	int j=0;
	int k=0;
	for(i=MIN; i<MAX; i++) {
		for(j=MIN; j<MAX; j++) {
			for(k=MIN; k<MAX; k++) {
				printf("%c%c%c\n", i,j,k);
			}
		}
	}
}

void four() {
	int i=0;
	int j=0;
	int k=0;
	int l=0;

	for(i=MIN; i<MAX; i++) {
		for(j=MIN; j<MAX; j++) {
			for(k=MIN; k<MAX; k++) {
				for(l=MIN; l<MAX; l++) {
					printf("%c%c%c%c\n", i,j,k,l);
				}
			}
		}
	}
}

void five() {
	int i=0;
	int j=0;
	int k=0;
	int l=0;
	int m=0;	

	for(i=MIN; i<MAX; i++) {
		for(j=MIN; j<MAX; j++) {
			for(k=MIN; k<MAX; k++) {
				for(l=MIN; l<MAX; l++) {
					for(m=MIN; m<MAX; m++) {
						printf("%c%c%c%c%c\n", i,j,k,l,m);
					}
				}
			}
		}
	}
}

void title() {
	system("clear");
	printf("-------------------------------------\n");
	printf("|       Dictionary Generator        |\n");
	printf("|               1.0                 |\n");
	printf("|           by richie               |\n");
	printf("-------------------------------------\n\n");
	printf("Send suggestions and comments to: luckyr13@gmail.com\n");
}
One Comment leave one →
  1. julio 4, 2009 9:32 am

    ola aversi em lo podeis consegir pffa

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: