begin process at 2012 02 10 06:50:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > BRUTUS

BRUTUS


 Information sur la source

Note :
7 / 10 - par 2 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Débutant Date de création :31/12/2002 Date de mise à jour :31/12/2002 13:10:12 Vu :14 409

Auteur : Lissyx

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

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

Source

  • /*
  • 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 :-(
  • }
  • }
/*
	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 :-(
	}
}



 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de LordBob le 31/12/2002 13:57:51

g pas trop regarder ton code, mais si il fait bien tout ce ke tu dit il va me plaire... ;-)

Commentaire de Lissyx le 31/12/2002 14:02:39

attention, c'est juste un exemple, y crack aucun logiciel, juste

code = (a+2) * (b-1) * (c+3)

et y trouve le maximum de solution pour a, b et c

Commentaire de trinitacs le 31/12/2002 15:59:18

Sais tu que le C et le C++ sont deux langages différents? alors ne les mélange pas: String est du C++, delete et new sont aussi du C++, par contre printf c'est du C!

J'ai aps compris à quoi servait ton code, mais en tout cas tu écris du texte dans un fichier. Donc utilise la classe ofstream du C++ pour écrire et ifstream pour lire dans u fichier.

"hey hey, 3h40 de bouleau pour arriver à ça
    qui m'as pris 5min en VB"
lissyx &gt;&gt; On ne développe pas forcément plus vite en VB. La STL en C++ permet de faire des programmes sans rien glander :)

Commentaire de Lissyx le 31/12/2002 16:02:10

wé, mais c'est pour dire comment j'ai galérer

et pi, j'ai fait comme j'ai pu

Commentaire de Kaid le 31/12/2002 16:30:34

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

Commentaire de Lissyx le 31/12/2002 16:38:53

mais je sais lol, mais c'est volontairement que je l'ai fait en C/C++

Commentaire de trinitacs le 31/12/2002 22:05:54

Kaid &gt;&gt; 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 :)

Commentaire de couriousous le 04/01/2003 17:52:49

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++ )

Commentaire de LordBob le 24/07/2003 15:26:41

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???

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales