Titre: [C] Algo de brute force Posté par: IoNAce le 17 Avril 2007 à 15:55:59 Hello all !
Sa fait longtemps que je cherche a coder mon propre algo de brute force. J'ai vue beaucoup de code a ce sujet mais la plupart ce contente d'une attaque par dictionnaire (pas dur a faire) ou sinon, le code est relativement mal commente et je galere a comprendre. Est-ce que quelqu'un pourait m'expliquer comment on fait ? J'ai reussi a en faire un mais sa ne fonctionne plus au bout de 3 lettres :oops; et je repete souvent les memes groupes de lettres (genre plusieurs fois aaa). Merci =) Titre: [C] Algo de brute force Posté par: offw0rld le 17 Avril 2007 à 17:12:00 Ben tu peux toujours regarder le code de john the ripper, sinon un bruteforce que je trouve bien optimiser et en c, y'a celui la : http://www.geocities.com/dxp2532/unhash.zip
Titre: [C] Algo de brute force Posté par: IoNAce le 18 Avril 2007 à 12:17:27 Cool merci je vais regarder sa.
Titre: [C] Algo de brute force Posté par: Bug_Bug le 11 Juillet 2007 à 22:42:28 Tu peut aussi mire ce petit tuto (un peut) intéressant:
http://www.mixman.biz/brutusforce.htm Titre: [C] Algo de brute force Posté par: Folcan le 18 Juillet 2007 à 10:17:18 En meme temps un bruteforce, c'est ce qu'il y'a de plus simple a faire...
Tu initialise une chaine de caractere : abcdefghijklmnopqrstuvwxyz et apres tu boucle sur les caracteres, ca me semble pas bien mechant, sinon c'est que j'ai pas tout compris... Titre: [C] Algo de brute force Posté par: offw0rld le 27 Juillet 2007 à 10:30:54 C'est sur, la logique du bruteforce est simple, mais l'optimisation (qui est très importante) n'est pas le plus simple a faire.
Titre: [C] Algo de brute force Posté par: Invit le 07 Août 2007 à 11:25:50 Bonjour, voici mon problème
Code: #include <stdio.h> Titre: [C] Algo de brute force Posté par: micka13 le 07 Août 2007 à 13:33:55 Un appel reccursif ?
Titre: [C] Algo de brute force Posté par: Invit le 07 Août 2007 à 15:05:32 je suis d'accord montre comment on fait pour mettre des caracteres en plus...
- exemple de code source ou autre.... Titre: [C] Algo de brute force Posté par: _o_ le 07 Août 2007 à 15:19:19 Citation de: ECHELON je suis d'accord montre comment on fait pour mettre des caracteres en plus... Il va falloir être un tout petit peu plus précis sur ce que tu cherches à faire, car pour le moment, je n'ai trouvé personne qui ait compris ta demande (à part micka13 peut-être, mais je n'ai pas compris sa réponse :/ ).Titre: [C] Algo de brute force Posté par: Invit le 07 Août 2007 à 15:28:58 Ok voila si vous voulez je crée un logiciel de brutforce mon problème c'est qu'il affiche un seul caractere est je voudrais qu'il affiche plusieur caractères
exemple: 2 caractères ------------- ab ac ad ... ensuite 3 caractères aab aac aad ... ainsi de suite... Titre: [C] Algo de brute force Posté par: _o_ le 07 Août 2007 à 15:49:20 Bon, ben déjà, suite à la modification de ton code source, je te propose un truc encore plus simple, sous réserve que tu te limites à de l'US_ASCII :
Code:
Citation de: ECHELON Ok voila si vous voulez je crée un logiciel de brutforce mon problème c'est qu'il affiche un seul caractere est je voudrais qu'il affiche plusieur caractères. C'est un simple problème d'algorithmique. Mais j'ai peur que ce soit un peu mettre la charrue avant les boeufs. Commence par te documenter sur la manipulation de chaînes en C, c'est un pré-requis impératif pour pouvoir réaliser ce genre de chose.Titre: [C] Algo de brute force Posté par: Invit le 07 Août 2007 à 18:52:15 Pardon, j'ai essayé ton code ça n'a rien fait je suis toujours à un seul caractere
Titre: [C] Algo de brute force Posté par: _o_ le 07 Août 2007 à 19:02:17 Citation de: ECHELON Pardon, j'ai essayé ton code ça n'a rien fait je suis toujours à un seul caractere Évidemment, ça fait la même chose que ton code, mais écrit un peu plus dans la philosophie C. Pour le reste, je suis désolé, mais il va vraiment falloir que tu te formes à ce langage pour espérer aller plus loin.Titre: [C] Algo de brute force Posté par: Invit le 07 Août 2007 à 19:10:51 Code: écrit un peu plus dans la philosophie C. Code-Source ------------------ for(i = 'a'; i <= 'z' ; i++) { printf("%c\n", i); } ------------------------------ for(i = 0; i < 26; i++) { printf("%c\n", i); } ------------------------------ alors sinon si je comprend bien personne ne sais comment ajouter des caractères en plus.. Titre: [C] Algo de brute force Posté par: _o_ le 07 Août 2007 à 19:18:46 Citation de: ECHELON lool,c'est la même chose à part que t'as changer les nombres par les caractères... Heuuuuu... J'ai surtout viré le tableau de 26 caractères, hein.Titre: [C] Algo de brute force Posté par: Invit le 07 Août 2007 à 19:21:20 Oui, t'as fait comme mon premier code source que j'ai fait t'as utiliser le code Ascii...
Titre: [C] Algo de brute force Posté par: Chilly le 07 Août 2007 à 19:39:53 Citation de: _o_ C'est un simple problème d'algorithmique. Mais j'ai peur que ce soit un peu mettre la charrue avant les boeufs. Commence par te documenter sur la manipulation de chaînes en C, c'est un pré-requis impératif pour pouvoir réaliser ce genre de chose. Pour moi c'est effectivement un problème d'algorithmique, et je pense qu'il faudrait que tu commences à réfléchir tout seul, avec un papier et un crayon sur l'enchaînement des "actions" à effectuer. Sans chercher à écrire en C ou autre. En écrivant des instructions en pseudo-langage, par exemple, ou en faisant des petits diagrammes décrivant les enchaînements de ce que ton programme devra faire pour aboutir au résultat que tu souhaites. Et en déroulant à la main ce que tu auras écrit.Ne le prends pas mal, mais ce que tu demandes est assez simple à coder. Et vu ce que tu as écrit tu n'as visiblement pas la logique d'un programmeur pour l'instant. Alors peut être que tu as besoin que quelqu'un t'aide dans ton apprentissage, je ne dis pas qu'il faut que tu te débrouilles tout seul, que tu ne trouveras aucune aide. Mais te donner un algorithme tout fait pour ton brute-force, ne t'aiderait pas spécialement, à mon avis, à progresser en programmation. Pour moi, tu devrais réfléchir avec un papier et un crayon à la logique que doit suivre ton programme. Bien sûr il n'est pas question de tout coder tout le temps en passant par le papier/crayon, mais c'est une étape - je pense - importante pour un débutant. C'est comme ça que j'ai débuté personnellement, et je pense que je me débrouille bien en algorithmique. Une fois que tu auras trouvé sur papier une suite d'instructions et qu'en la déroulant à la main, tu obtiendras ton résultat, là, il sera temps de voir comment on manipule les chaînes de caractères en C, pour écrire enfin ton programme. Après c'est mon avis personnel qui n'engage que moi. Et ce n'est pas une attaque personnelle ni rien dans le genre, mais juste mon avis pour que tu progresses en programmation. Titre: [C] Algo de brute force Posté par: Invit le 07 Août 2007 à 19:45:57 tu parles de quoi là pardon mais la boucle avec un code ascii je l'avais déjà fait ?(pour la question de programmation je pense bien le problème c'est que je sais pas tous)
deuxiement je n'ai jamais demander le code source juste de comprendre avoir un tuto ou autre... Sinon, je trouve que c'est une trés bonne idée que je prenne un bloc de feuille est un crayon pour aller réfléchir... le probléme c'est que je connais pas tous le language [C] c'est pour ça que je vous demandez un tuto qui pourrais m'apprendre à mettre des caractères en plus. Titre: [C] Algo de brute force Posté par: Zmx le 07 Août 2007 à 21:52:22 Citation de: ECHELON c'est pour ça que je vous demandez un tuto qui pourrais m'apprendre à mettre des caractères en plus. http://www.commentcamarche.net/forum/affich-144034-concatenation-en-cTitre: [C] Algo de brute force Posté par: Invit le 07 Août 2007 à 22:32:08 Je suis d'accord Zmx
ça va me servire à quoi de mettre deux variable de même valeur... Code: strcat("hello ","world"); sinon j'ai trouver un code source qui montre [algorithme brute force] http://www.cppfrance.com/codes/ALGO-BRUTE-FORCE_28799.aspx j'ai garder l'essentiel du code source Code: #include <stdio.h> je comprend la premiere boucle du code source ensuite c'est flood.... pourriez-vous me l'expliquer... Titre: [C] Algo de brute force Posté par: neoflo le 19 Septembre 2007 à 22:21:24 Il n'y a pas besoin de strcat pour ça. Ce que tu veux faire, c'est générer l'ensemble des combinaisons.
C'est le même principe que pour des entiers ;) Il est possible d'utiliser toujours le même buffer tout au long du calcul. Par exemple en s'inspirant de : http://www.developpez.net/forums/showthread.php?t=228599 Titre: Re : [C] Algo de brute force Posté par: Deamos10 le 16 Juin 2008 à 22:06:39 Amis du soir bonsoir,
Petite question existentielle venue du fin fond de mon esprit : Pour coder concretement un soft de bruteforcing, faut-il lancer un logiciell ssh genre putty avec un Createprocess pour ensuite lui envoyer une série de mdp à tester ? A moins qu'il ne faille creer son propre ssh client ? Ce point me parait important étant donné que dans ce topic il ne s'agit que de la génération de l'ensemble des combinaisons, mais que faut-il en faire ensuite ? :p Amicalement tousa =) Titre: Re : [C] Algo de brute force Posté par: mogg41 le 16 Juin 2008 à 22:19:51 Je ne suis pas expert en bruteforcing mais pour répondre à ta question tout dépend de ce que tu veux cracker. Admettons que tu veuilles bruteforcer un login et un password qur un site. Tu crées ton bruteforce et après tu ouvres un socket (puisqu'on est dans un topic de C) et tu y envoies tes login/password.
Pour ce qui est de bruteforcer une boîte mail, une archive ou tout autre programme je ne sais pas comment il faut s'y prendre. J'espère t'avoir aider. Mogg Titre: Re : [C] Algo de brute force Posté par: hypothetik le 17 Juin 2008 à 09:09:00 ce topic m'intéresse beaucoup ! pas tant sur l'algo mais plutôt sur la façon de se "connecter" a un programme en local histoire de tester ses mots de passes;
J'ai vu dernièrement un tuto sur le hook windows (http://tcharles.developpez.com/simul/) qui m'avait l'air pas mal, existerait il des fonctions pour remplir les champs d'un programme après avoir trouvé son Class Name sans avoir a simuler l'appui des touches ? pour intercepter la réponse ? J'ai vu qu'un hook WH_GETTEXT existait mais je n'ai pas compris son utilisation, apparemment on peut même l'utiliser sur une fenêtre fille ce qui devient très intéressant :twisted: Titre: Re : [C] Algo de brute force Posté par: Ge0 le 14 Décembre 2008 à 14:21:14 Salut salut.
Pour ma part, je suis plus intéressé par l'algorithme qu'autre chose ; de plus, je voulais faire un nouveau sujet mais celui-ci a toujours lieu d'être malgré les vieilles réponses, donc allons-y... Ce que j'ai pu faire en C, c'est une fonction récursive - enfin, plus une procédure puisqu'elle ne retourne pas de valeur - qui reçoit un argument un nombre allant de 0 à n, et qui va appeler printf() plusieurs fois pour afficher un caractère à la fois. Je m'explique : Code: char tab[] = "0123456789"; Le but sera de faire afficher de 0 à 9, puis de 00 à 99, puis de 000 à 999... etc, jusqu'à une taille donnée (je ne me suis pas encore penché sur la condition d'arrêt). J'ai donc employé l'usage d'un compteur. Code: int cpt = 0; Et j'ai pensé aux conditions suivantes : Citation si cpt = 0, retourner 0 si cpt = 9, retourner 9 par contre, si cpt = 10, retourner "00" si cpt = 11, retourner "01 ... si cpt = 20, retourner "10" ... si cpt = 100, retourner "90" si cpt = 110, retourner "000" L'algorithme appellera donc la division et le modulo : - Les divisions successives pour connaître la taille de la chaîne courante en fonction du compteur ; - Le modulo pour connaître le caractère en question dans la table. Enfin, je vous avoue que j'ai vraiment du mal à m'expliquer car entre le repas et la douche, j'ai réfléchi à plusieurs trucs sans garder les traces de mon boulot ; cet algo est vraiment casse-tête... Néanmoins, j'ai trouvé une fonction récursive qui marchait : Code: Procedure BruteForce(E : num : Entier, E : tab : chaine de catactères : E : taille : Entier) En C : Code: void BruteForce(size_t num, char *tab, int longueur) { Bien que je ne puisse réexpliquer mon raisonnement, ce code marche parfaitement dans une boucle comme celle-ci - je rappelle que je n'ai pas fait de condition d'arrêt : Code: i <- 0 Code: while(1) { Bref, ça commence à me prendre un peu la tête, tout ça... Je voulais savoir si quelqu'un saurait comment me traduire cette fonction en itérative qui retournerait la bonne chaîne de caractères ? Car j'avoue que je stagne là. Si vous avez besoin de plus de précisions sur la chose, j'essaierai de faire de mon mieux. Titre: Re : [C] Algo de brute force Posté par: Spl3en le 29 Mai 2010 à 18:13:12 Je déterre un très vieux topic, mais bon, puisque je suis tombé dessus et qu'il m'intéressait :)
En réponse à Geo, j'ai essayé de faire ce que tu demandais ; J'ai repris ton idée de compteur, et évité d'une certaine façon la récursivité. Ca me donne ça ... Avec une grosse optimisation possible de la fonction get_pass_len_max : Je n'arrive tout bêtement pas à récupérer la longueur du mot de passe en fonction de son id (le compteur), alors que l'inverse est très simple à faire... Du coup ça me donne du code très bourrin pour cette fonction qui réduit beaucoup les perfs, c'est bien dommage car le reste tourne niquel :( Code:
|