Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[C] ALGORITHME BRUTE FORCE


Information sur la source

Catégorie :Maths & Algorithmes Classé sous : bruteforce, motdepasse, forcebrute, générateur Niveau : Débutant Date de création : 20/03/2007 Vu / téléchargé: 18 114 / 1 204

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


Description

Cet algo vous permet de générer toutes les combinaisons comprise entre x et n caractere...
Je le pa tellement optimiser donc si vous avez des idees ou des conseilles pour le rendre encore plus
rapide, je suis preneur.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • BF.cTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 043 octets
  • BF.devTélécharger ce fichier [Réservé aux membres club]846 octets
  • BF.ex_Télécharger ce fichier [Réservé aux membres club]18 300 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de ptidiable le 21/03/2007 08:31:30

Sa aurait pu être interesant de choisire la plage de caractére [ exclures les caractére speciaux, exclures les nombres, pas de majuscules... ]

Et aussi de pouvoir sauvegarder dans un fichier le resultat du calcul

signaler à un administrateur
Commentaire de Neo_Fr le 21/03/2007 11:30:48

Ouai j'avou sa serait mieux de pouvoir choisir une plage de caractere, je ferais bientot une maj...

signaler à un administrateur
Commentaire de mehdi7604 le 21/03/2007 18:56:35

ce n'est pas interesant car ton programme execute essaie après essaie , ça se ra trop long , en + tu n'as rien testé : tu cherche quoi comme mot de passe ?

-- pss-- je pense que les admines ne vont pas tarder à supprimer ta source ....

signaler à un administrateur
Commentaire de BruNews le 21/03/2007 20:34:47 administrateur CS

La source propose une méthode de génération des différentes combinaisons, chacun peut en faire (pas sur CS) ce qu'il veut ensuite au lieu du simple printf.

signaler à un administrateur
Commentaire de mehdi7604 le 21/03/2007 21:19:31

oui je sais mais ça prendra des semaines...........

signaler à un administrateur
Commentaire de Neo_Fr le 21/03/2007 22:44:17

Si je teste rien c'est parceque c pas le but du prog, je fourni juste la fonction de brute force avec un exemple des plus basic, a vous de vous en servir comme bon vous semble...

Je cherche juste des conseilles pour l'optimiser c tt...
(Pas la peine de me dire de virer printf je le mis juste pour l'exemple)

Pour medhi: je voit pas pourquoi des admins supprimeraient ma source je n'ai pas trouver d'algo brute force utilisant cette méthode, en plus quand je vois les dizaines de calculettes ou de pseudo-virus qui trainent....

signaler à un administrateur
Commentaire de mehdi7604 le 21/03/2007 23:23:16

ok
1- les admines pourront supprimer ta source parceque c'est un code qui aide à produire des logiciels malveillants , au contraire c'est un bon code( en tout cas ce ne sont pas mes ognons , je te dis juste ça parcequ'on m'a déja supprimé un code qui fait la meme chose mais qui teste des mp pour trouver le mp administrateur de reseau).
2- pour optimiser ton code ,,, si tu passes au niveau des testes essay d'utiliser le Multithread ,,, je ne s'ait pas comment ça marche .com mais j'ai des notions = ça permet de faire plusieurs taches en meme temps si je ne me trompe pas .
3- ne prends pas les reproches comme des attaques personneles , tu e programmeur et des clients te dirons que ton logiciel ne marche pas ou ne les plait pas ...

signaler à un administrateur
Commentaire de mehdi7604 le 21/03/2007 23:29:59

meme les mots atachées à ta sources : bruteforce , motdepasse , générateur : ça n'a pas l'air d'etre inocent ;-) .

signaler à un administrateur
Commentaire de Neo_Fr le 22/03/2007 17:28:46

1- Si je l'ai posté c'est a but didactif, je ne voit pas ce qu'il y a de malveillant a bruteforcer du hash md5 ou lm (tant que tu teste tes propres mdp), il ya des bonnes sources a ce sujet sur ce site...

2- Pour les threads j'en utilise un dans mon prog pour faire un timer avec sleep, ce qui permet de ne pas bloquer le prog, c vrai que se serait peut etre mieux de generer les mdp avec un thread et de les hasher avec un autre (Est-ce possible?)

3- t'inquiete pas je prend pas du tt tes reproches comme des attaques personel, dsl si je t'est paru agresif :)

signaler à un administrateur
Commentaire de mehdi7604 le 22/03/2007 18:41:51

ok bonne chance :-)

signaler à un administrateur
Commentaire de Wazza56 le 25/03/2007 19:43:25

Heu c'est la premiere foi que je veu utiliser un brute force mais juste une quetion, comment sa marche il y a pas de exe?

signaler à un administrateur
Commentaire de BruNews le 25/03/2007 19:50:20 administrateur CS

Renomme le ex_ en exe et tu utiliseras à tes risques et périls.
Un exe direct dans le zip est supprimé au téléchargement, CS ne doit pas être tenu responsable en cas de virus.

signaler à un administrateur
Commentaire de Neo_Fr le 25/03/2007 22:46:32

Tu telecharge Devcpp tu ouvre le .dev et tu tape sur F9 pour compiler le projet...

signaler à un administrateur
Commentaire de LeFauve42 le 26/03/2007 18:53:53

Salut,

C'est mignon ton code, mais je ne pense pas qu'en pratique ca permette de casser quelque chose de plus de 5 ou 6 caracteres dans un temps "raisonable" :o)

Ceci dit, c'est plutot bien ecrit.

Voici quelques astuces pour l'optimiser un peu:
- D'abord, les realloc() sont a proscrire. Dans ton cas tu ne l'appelles pas souvant, mais c'est tres couteux, et en plus tu n'en as pas besoin. Il te suffit d'allouer un buffer de taille max, et de le remplir de zeros et hop, tu peux l'utiliser pour toutes les tailles.
- Ta boucle de mise en cascade des retenues pourrait etre beaucoup optimisee: En effet, tu la parcours du dernier caractere au premier. C'est generalement une bonne habitude quand la valeur max est le resultat d'une fonction, mais ce n'est pas le cas ici. De plus, comme il s'agit d'une retenue, les valeurs ne changent pas aleatoirement. Je dirais meme que ce sera toujours uniquement les "n" premiers qui vont changer, mais des que tu arrives sur une case sans retenue, il n'est plus possible que d'autres cases changent.

Donc, au lieu de parcourir tout ton tableau, tu peux le parcourir en partant du debut uniquement tant qu'il y a des debordements (valeurs >= 107)

- Un autre truc qui ne gagnera rien en vitesse, mais tu devrais utiliser un truc genre sizeof(ALL)/sizeof(char) au lieu de 107 (eventuellement tu peux faire un #define) pour que ce soit plus lisible. Tu ne perds pas de temps car c'est calcule a la compilation

- Pour calculer la plupart des fonctions de hash, tu utilises les caracteres de ton mdp du premier au dernier. Tu aurais donc interet a calculer ce hash pendant que tu construis ta chaine. Si tu te debrouilles bien, tu peux stocker les valeurs intermediaires et les reutiliser (ex: apres avoir calcule hash('aaaaaaaaaa'), tu peux rapidement recalculer hash('aaaaaaaaab)').

Evidemment, ca rend le code beaucoup moins lisible, mais c'est aussi ca la force brute :o)

En fait, pour la plupart des trucs de hash, tu n'as pas besoin d'avoir ton mdp stocke en memoire sous forme claire. Ce qui peut te faire gagner du temps (mais du coup, ton prog d'exemple avec printf() ne serait plus possible). L'ideal serait d'avoir un tableau d'int au lieu de char. Ca prendrait plus de place, mais le proc adresserait alors des cases memoires multiples de 4 ce qui le ferait aller plus vite (les procs modernes n'aiment pas les adresses impaires).

Enfin, ce genre de progs est parmis les quelques programmes qui gagnent encore a etre ecris en assembleur, donc sorti de l'aspect "didactique", je te deconseillerais donc de l'utiliser dans le vrai monde.

Sinon pour repondre a ta question, tu ne gagnerais pas grand chose en faisant calculer les mdp par un thread et le hash par un autre.
L'ideal serait de couper le nombre de possibilites a tester en deux (ou plus si tu as plus de cores sur ton proc) et de donner a chaque thread une partie des calculs a effectuer.
Attention, sur un monocore, ca n'apportera rien, et ca prendra sans doute legerement plus de temps.

Comme tu affiches le temps, je suppose que tu as du noter les perfs de ton programme.
Je serais currieux de savoir combien l'optimisation de la boucle des retenues te fais gagner.

Bonne chance,
Eric

NB: Ca me rappelle ma jeunesse quand on se tappait la bourre pour les calculs de nombre premiers avec les potes :o)

signaler à un administrateur
Commentaire de Wazza56 le 27/03/2007 19:20:12

qu'est ce que l'onpeu craquer avec sa? Des truc du genre jeu sur le net du style metaldamage ou autres comme ogame, ou des clé CD enfin tous sa, ce serai sympas de me le dire.
Merci

signaler à un administrateur
Commentaire de Neo_Fr le 31/03/2007 14:33:29

Merci de tes conseils lefauve,
- Pour les realloc je ne pensse pas qu'ils ralentissent vraiment
le prog etant donné que je l'appelle tres peu souvent, mais peut etre qu'un malloc, free a chaque fois serait plus rapide?

- J'ai légerement améliorer la boucle d'incrémmentation,
dès que je trouve un 0, je sort de la boucle...

- Que veut tu dire par "Tu aurais donc interet a calculer ce hash pendant que tu construis ta chaine." ?
Tu veut dire de faire la comparaison pendant la génération du mdp (a la place de printf), si c'est le cas c ce que j'ai fait

- Et sinon est-ce que tu pourrait m'expliquer l'histoire du tableau d'int, je vois vraiment pas comment je pourrais faire
pour récupérer le mdp "en clair" pour pouvoir le hasher ensuite.

Merci

signaler à un administrateur
Commentaire de BruNews le 07/05/2007 00:46:34 administrateur CS

Me suis permis de réutiliser ton algo:
http://www.cppfrance.com/code.aspx?ID=42524
Voir comments en bas de source.

signaler à un administrateur
Commentaire de Neo_Fr le 08/05/2007 12:27:44

Merci d'avoir corriger les bugs

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

générateur de nombre aléatoire [ par sadral ] Je fais des recherches sur les générateurs de nombres pseudo-aléatoires et je cherche de la doc dessus,si il y en a qui ont fais des études dessus, ca Besoin d'un Générateur de Bruit Gaussien Généralisé [ par tawfik26 ] Je travaille dans le domaine du traitement du signal et j'ai besoin d'un code source C d'un g&#233;n&#233;rateur de bruit gaussien g&#233;n&#233;ralis Générer un .exe [ par Psyc0s ] Bonjours, Je dois, &#224; partir d'un programme, g&#233;n&#233;rer un fichier ex&#233;cutable. Le "g&#233;n&#233;rateur" cr&#233;e le .exe avec des Générateur de Play list et Référenceur [ par cam_b ] Bonjour, j'avais d&#233;j&#224; d&#233;pos&#233; un message pour ce sujet mais personne ne m'avait r&#233;pondu donc je le reposte en esp&#233;rant ce Port parallèle [ par tounet9100 ] Bonjour,J'ai un projet d'&#233;lectronique &#224; faire avec mon universit&#233;. Il s'agit de programmer un g&#233;n&#233;rateur pseudo al&#233;atoir [OpenGL] Chute d'eau - Générateur particules d'eau [ par ymerej ] Bonjour &#224; tous,je souhaite r&#233;aliser une chute d'eau (cascade) en OpenGL dans ce style l&#224; : <img src="http://screenshots.softonic.com/s2 générateur de loi normale [ par deubelte ] bonjourje recherche un générateur de flots de chiffres ayant une répartition normale N(0,1) en C/C++.Ou pourrais-je trouver un tel programme. Je veux Générateur pseudo-aléatoire LFSR [ par Dsantu ] BonjourJe cherche de l'aide à propos des générateurs peudo aléatoires.Je veux programmer un Galois_LFSR en C/C++ mais je n'arrive pas a avoir des Probleme de tri [ par bebeesther ] Si tu peux m'aider, je serai tres reconnaissant!!!!!!!!Merci d'avance.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.