Moteur de bute force(générateur de password)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 081 fois - Téléchargée 29 fois

Contenu du snippet

Voici une source bien simple expliquant comment générer des Password
afin de pouvoir faire des attaques par dictionnaire(en dehors du fait que cest attaques sont tres longues)
Je vous laisse voir la source

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MINCHAR 33
#define MAXCHAR 126

char *bruteforce(int passlen, int *ntries);

int main(void) {

	int i, wdlen, counter;
	char *str;
	clock_t start, end;
	double elapsed;

	do {
		printf("Taille du mot(nombre de lettres)... ");
		scanf("%d", &wdlen);
	} while(wdlen<2);

	start = clock();

	bruteforce(wdlen, &counter);

	end = clock();

	elapsed = ((double) (end - start)) / CLOCKS_PER_SEC;
	printf("\nNombres de mots... %d \n",counter);
	printf("\nTemps ecoule... %f secondess\n",elapsed);

	return counter;

}

char *bruteforce(int passlen, int *ntries) {

	int i;
	char *str;

  • ntries=0;
passlen++; str = (char*)malloc( passlen*sizeof(char) ); for(i=0; i<passlen; i++) { str[i]=MINCHAR; } str[passlen]='\0'; while(str[0]<MINCHAR+1) { for(i=MINCHAR; i<=MAXCHAR; i++) { str[passlen-1]=i; (*ntries)++; puts(&str[1]); } if(str[passlen-1]>=MAXCHAR) { str[passlen-1]=MINCHAR; str[passlen-1-1]++; } for(i=passlen-1-1; i>=0; i--) { if(str[i]>MAXCHAR) { str[i]=MINCHAR; str[i-1]++; } } } return NULL; }

Conclusion :


Voila c'est tout
Bon ProG'S

A voir également

Ajouter un commentaire

Commentaires

Messages postés
45
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
27 juin 2008

Pour un password classique de 20 chars, on arrive a 36 exp(20) = 1.33674945 × 10 exp(31) possibilités !
J'ai écrit il y a quelques temps un générateur de dictionnaire ( qui utilise les caractères du bruteforce: aa, ab, bb, ba etc... ), et pour l'écrire il m'a falu plus de deux jours ( meme pas fini en plus :D ) !
Messages postés
126
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
4 mars 2005

Mouais bô c'est pas mal quoi !!!!!
C'est un peu lent comme système dès qu'on veut des mots
un tout petit peu long mais bon ...
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

C'est bien ton programme. Par contre j'ai 3 remarques:
D'abord dans la fn bruteforce, tu as alloué des memoires avec malloc, donc tu devrais les liberer en fin de programme.
La seconde , tu mets char* la valeur renvoyée par bruteforce, alors qu'elle retourne toujours NULL . Si je comprends bien ce que tu as l'intention de faire, c'est à partir de ce char* que tu devrais liberer les mémoires allouées par malloc.
Dernièrement, pourquoi tu mets cette source en niveau 2 ????
Tchao!! Bonne prog!!!!!!!!!!!!!!!!!!!!
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

si tu passais au C++ tu pourrais utiliser new et delete pr les allocs dynamiques, et c'est vachement élégant comme méthode ^^ je dis ça je dis rien, faut surtout pas mal le prendre.

sinon un truc, tu utilises un bloc do/while, pourquoi ne pas mettre juste while? je sais que le do while assure que le bloc soit exécuté au moins une fois, mais ça tu peux t'arranger dans la condition non ? enfin, c un truc uqi m'a tjs étonné ici, y a pleins de gens qui utilisent ça.
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
9
j'avais y a certains temps essayer de réaliser exactement le meme code, mais j'avais arrete... mais ton code est bien je trouve... il n'a pas grande grand utilité... mais au moins on peut apprendre des choses sur l'allocation dynamiques :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.