Brutus

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 236 fois - Téléchargée 34 fois

Contenu du snippet

Soyez indulgent, c'est mon premier code
je pense qu'il seras inutile pour certain,
mais d'auter pourront le trouver interessant...

Source / Exemple :


/*
	Brutus.cpp -- Brutus v1.0 -- Crack BruteForce pour entrainement au C
	c'est *nocomment* le code, c'est mon premier code C compliqué qui marche
	merci de penser à me rétribuer la coquette somme de euros pour chaque
	utilisation du soft [hey hey, 3h40 de bouleau pour arriver à ça
	qui m'as pris 5min en VB]...

  • /
#include <stdafx.h> #include <stdio.h> #include <stdlib.h> #include <string.h> FILE *stream; int _BruteForce_(int code, int max); bool findChar(char* strToFind, char* strSource); int main(int argc, char* argv[]) { int r_count = argc - 1; // on regarde combien y'a d'arguments réels char* max = NULL; char* code = NULL; char* arg_max = NULL; char* arg_code = NULL; int int_arg_max = 0; int int_arg_code = 0; if(r_count < 2 || r_count > 2){ // si y'a pas le nombre correct d'arguments... printf("Brutus v1.0 -- Crack BruteForce ;-)\n"); printf("veuillez specifier le maximum de boucles et le code !\n"); printf("Arguments valides\n"); printf(" -h :: cet ecran\n"); printf(" -code=x :: specifie le code a cracker, ou x est le code\n [entier naturel]\n"); printf(" -max=y :: specifie le nombre de boucles, ou y est le\n nombre de boucles [entier naturel]\n"); return 0; } if(r_count == 2){ //y'a le nombre d'arguments if(findChar("max", argv[1])){ //on regarde si c'est max ou code donné en 1er max = argv[1]; code = argv[2]; }else{ code = argv[1]; max = argv[2]; } arg_max = new char[(strlen(max)-5)]; arg_code = new char[(strlen(code)-6)]; strncpy(arg_max, max+5, (strlen(max)-5)); // on copie les valeurs dans de nouvelles chaines strncpy(arg_code, code+6, (strlen(code)-6)); arg_max[(strlen(max)-5)] = NULL; arg_code[(strlen(code)-6)] = NULL; int_arg_max = atoi(arg_max); int_arg_code = atoi(arg_code); } _BruteForce_(int_arg_code, int_arg_max); // on lance la fonction bourrin delete[] arg_max; // nettoyage POWA delete[] arg_code; return 0; //quittage } int _BruteForce_(int code, int max) { int a = 0; int b = 0; int c = 0; int marche = 0; printf("Brutus v1.0 -- Crack BruteForce ;-)\n"); printf("Tentative de brute forcer pour trouver a, b, c avec le code %d\n", code); printf("avec %d = (a+2) * (b-1) * (c+3)", code); stream = fopen("crack.txt","a"); // ouverture du fichier de logging fprintf(stream, "Tentative de brute forcer pour trouver a, b, c avec le code %d\n", code); fprintf(stream, "avec %d = (a+2) * (b-1) * (c+3)\n", code); /* ci-dessous, bourrinage en cours 3 boucles for imbriquées hummm
  • /
for( a = 1; a <= max; a++ ) { for( b = 1; b <= max; b++ ) { for( c = 1; c <= max; c++ ) { int CheckSum = (a+2) * (b-1) * (c+3); if(CheckSum == code){ marche++; printf("a=%d, b=%d, c=%d, CheckSum=%d\n", a, b, c, CheckSum); fprintf(stream, "a=%d, b=%d, c=%d, CheckSum=%d\n", a, b, c, CheckSum); } } } } if(marche == 0){ printf("\n\nDesole, aucune combinaison trouvee!\n"); fprintf(stream, "\n\nDesole, aucune combinaison trouvee!\n"); } fclose(stream); // fermeture du fichier return 0; } bool findChar(char* strToFind, char* strSource) { char* res = ""; res = strstr(strSource, strToFind); // on cherche la chaine voulue if(res != NULL){ return true; // trouvée! }else{ return false; // pas rouvée :-( } }

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
9
Lissyx, j'aimerais faire un ptit algorithme de 'Brute Force' mais j'y arrive pas trop, c'est pour cela que j'aimerai te poser quelques question sur ton code... et as tu poster quelque part l'équivalent de ce code réalisé en VB, si oui pourrais tu me dire ou le trouver???
Messages postés
68
Date d'inscription
lundi 21 mai 2001
Statut
Membre
Dernière intervention
4 janvier 2003

hem ... question récursivité le VB est capable d'en faire !!! ( mais c'est limité ok ... ) sinon, comment on calculerait le déterminant d'une matrice en VB ???? or c'est possible ( j'ai fait l'ai codé mais c'est trops lent comparé au C++ )
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
1
Kaid >> Tu seras sûrement d'accord avec moi que la récursivité permet de résoudre des simplement des problèmes très complexes. Sans y faire appel ce serait un bordel à mettre en place. Or il n'est pas possible d'en faire en VB alors que c'est le cas en C++ :)

"j'ai fait comme j'ai pu"
Moi aussi je les fais comme je peux mes programmes, tableaus de pointeurs de fonctions, hein Kaid :)
Messages postés
40
Date d'inscription
lundi 7 mai 2001
Statut
Membre
Dernière intervention
12 août 2003

mais je sais lol, mais c'est volontairement que je l'ai fait en C/C++
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Forcément que c'est plus facile à faire un VB, le "B" de "Basic" veut dire "Beginner".
Afficher les 9 commentaires

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.