IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

aide sur un prototype antivirus


Sujet :

C++Builder

  1. #21
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    1- Salut je voulais savoir si il ya un lien ou site qui offre des signatures virale (pas toutes) je me disais que si je pouvais avoir certaines signature je pourrai les integrer a ma base de donnée puis rechercher la présence de ces signatures.

    2 -concernant le code suivant:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    md5wrapper *hashMd5 = new md5wrapper() ;
    AnsiString resultatMD5 ;
    std::string result = hashMd5->getHashFromFile( "D:\\monFichier.exe" ) ;
    resultatMD5 = (AnsiString) result.c_str() ;
    delete hashMd5;
    ShowMessage( "Resultat du hachage: " + resultatMD5 ) ;
    }
    ya une erreur signalée lors de compilation, c'est pas grave je vais encore essayer, si vois que jy arrive pas je fais signe.

  2. #22
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    salut SAT83, j'ai un probléme, lors de la compilation une erreur me signale que dans md5.cpp que le calificateur MD5:
    void MD5::MD5Init (MD5_CTX *context)
    n'est pas une classe ou un domaine d'appelation et que la déclaration est términée incorrectement ????
    j'ai essayer de faire plein de modifications mais sans resultat ya toujours des erreurs ...!!
    quelle est la solutions s'il te plais
    merci d'avance

  3. #23
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Je n'ai pas eu ce genre de problème. (Je suis sous C++ Builder 5).

    La seule chose que j'ai du ajouter c'est un #include <stdio.h> dans MD5wrapper.cpp.

    J'ai pas eu de soucis particulier a utiliser ces classes.

    Le seul truc c'est pour convertir le std::string en AnsiString il faut faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm1::BitBtn2Click(TObject *Sender)
    {
      md5wrapper *hashMd5 = new md5wrapper() ;
      std::string result = hashMd5->getHashFromFile( "D:\\MonFichier.exe" ) ;
      ShowMessage( (AnsiString) result.c_str()  );
      delete hashMd5;
    }
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  4. #24
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par sat83 Voir le message

    J'ai pas eu de soucis particulier a utiliser ces classes.

    Le seul truc c'est pour convertir le std::string en AnsiString il faut faire :
    J'ai déjai essayé ça mais c'est la méme chose, je travaille avec Builder 6

  5. #25
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    je n y arrive toujours pas avec le MD5, toujours des erreurs, est-ce qu'il yaurai des source pour des crc ou sha-1 .... ???

  6. #26
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 69
    Points
    69
    Par défaut
    Bonjour, tu trouveras en pièce jointe 2 fichiers qui te permettent de crypter une chaîne au format MD5 facilement.

    Pour l'utiliser, place les 2 fichiers dans le répertoire de ton projet et inclue MD5.h au .h de ta fiche (ex : Unit1.h)

    Ensuite pour l'appeler tu n'as plus qu'à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    AnsiString chaine_md5;
    AnsiString ta_chaine="toto";
    chaine_md5=MD5(ta_chaine);
    Voila en plus, le format AnsiString est géré par la fonction.

    J'espère avoir répondu à ton problème,

    Bonne continuation.
    Fichiers attachés Fichiers attachés
    • Type de fichier : h MD5.h (552 octets, 40 affichages)
    • Type de fichier : cpp MD5.cpp (7,2 Ko, 41 affichages)

  7. #27
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Citation Envoyé par Galip Voir le message
    Bonjour, tu trouveras en pièce jointe 2 fichiers qui te permettent de crypter une chaîne au format MD5 facilement.

    Pour l'utiliser, place les 2 fichiers dans le répertoire de ton projet et inclue MD5.h au .h de ta fiche (ex : Unit1.h)

    Voila en plus, le format AnsiString est géré par la fonction.

    J'espère avoir répondu à ton problème,

    Bonne continuation.
    En faite il souhaite obtenir le hachage MD5 d'un fichier, et non pas de chaine de caractères.

    @sossomj : Je ne comprend pas, les sources pour le MD5 que je t'ai donné fonctionne sans soucis chez moi, donc l'erreur que tu obtient vient peut etre d'ailleurs...

    Essai de créer un nouveau projet vierge, d'ajouter les sources MD5, et de simplement faire une petite application qui te permet d'utiliser les sources MD5. Moi c'est ce que j'ai fais et je n'ai pas eu de soucis...
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  8. #28
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Voilà un mini-projet utilisant les classes données pour calculer le MD5 d'un fichier...

    Y'a surement quelques bug, mais ca marche sans problème...

    (pour l'exe, renommer Project1.ex_ en Project1.exe)
    Fichiers attachés Fichiers attachés
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  9. #29
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Voilà un mini-projet utilisant les classes données pour calculer le MD5 d'un fichier...

    Y'a surement quelques bug, mais ca marche sans problème...

    (pour l'exe, renommer Project1.ex_ en Project1.exe)
    merci pour le mini projet mais il ne veut s'éxtraire le fichier compréssé est endommagé !

    tu pourrai me l'envoyer encore ou me donné le lien ? merci

  10. #30
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Je n'ai pas eu ce genre de problème. (Je suis sous C++ Builder 5).

    La seule chose que j'ai du ajouter c'est un #include <stdio.h> dans MD5wrapper.cpp.

    J'ai pas eu de soucis particulier a utiliser ces classes.

    Le seul truc c'est pour convertir le std::string en AnsiString il faut faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm1::BitBtn2Click(TObject *Sender)
    {
      md5wrapper *hashMd5 = new md5wrapper() ;
      std::string result = hashMd5->getHashFromFile( "D:\\MonFichier.exe" ) ;
      ShowMessage( (AnsiString) result.c_str()  );
      delete hashMd5;
    }
    finalement ça marche je sais pas ce qui c'est passé, en tout cas ça marche!

    je voudrai vous demander un conseil :
    je pensais faire comme suit:
    1 - Ajouter une ValueListEditor1 (chemin , Valeur) où seront transoposé le chemin des fichiers ainsi que leur code. les resultats seront enregistrés.
    le checksum sera effectuer au demarage de l'application.
    2 - quand je le souhaite je fais un nouveau checksum dans un nouvelle ValueListEditor (les resultats seront comparés avec le premier checksum) en cas de modification du code -> alerte.

    je voulais demander @ sat83: le MD5 est effectuer sur un seul fichier que je precise, comment faire le hash pour tout les fichiers que j'aurai scanné (scandirectory) je veu dire comment les combinés

    Merci

  11. #31
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    @ sat83 : il faut que tu m'aide s'il te plais parceque je bloque toujours, je n'arrive toujours pas a effectuer le hash sur un repertoire complet (ça se passe que sur un seul fichier)
    je t'explique: comme pour le scan, le hash doit etre effectué sur toutes les extension que j'aurai précisé (les .exe par example) du repoertoire que j'aurai indiqué (par example "C:\\Borland\\")

    je compte sur toi, je sais que tu peu m'aider
    encore une fois merci

  12. #32
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Ben tu a juste a utiliser la fonction ScanDirectory :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    void __fastcall ScanDirectory(AnsiString pmRep)
    {
       TSearchRec SearchRec;
       int Attributes = 0;
     
       AnsiString bcRep = "",
                  bcRepTemp = "",
                  bcFile = "",
                  bcExt = "";
     
       Attributes |= faAnyFile;
       bcRep = pmRep;
     
     
       if(bcRep[bcRep.Length()] != '\\')
       {
          bcRep+= "\\";  // ajout du slash final si il n'y est pas
       }
       bcRepTemp = bcRep;
       bcRep+= "*.*";
     
       if(FindFirst(bcRep, Attributes, SearchRec) == 0) // on recherche TOUS les fichiers/dossiers
       {
          do
          {
             bcFile = SearchRec.Name; // on recupere le nom du fichier/dossier trouver
             if(bcFile != "." && bcFile != "..") //on filtre les repertoires '.' et '..'
             {
                bcFile = bcRepTemp + SearchRec.Name;
                bcExt  = ExtractFileExt( bcFile ) ; // on recupere l'exstension du fichier
                if(SearchRec.Attr != faDirectory)
                {
                   if (LowerCase(bcExt) == ".exe") // on test si c'est un executable
                   {
                      CalculerMD5( bcFile ) ;
                   }
                }
                else
                {
                   ScanDirectory(bcFile); // si c'est un repertoire, on "scan" ce repertoire
                }
             }
          }
          while (FindNext(SearchRec) == 0);  // jusqu'a ce qu'il n'y ai plus de fichiers
          FindClose(SearchRec); // on ferme le TSearchRec
       }
    }
    Et ensuite tu ecris ta fonction CalculerMD5:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void CalculerMD5( AnsiString aFilename )
    {
        //  TO DO
    }
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  13. #33
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Ben tu a juste a utiliser la fonction ScanDirectory :

    Et ensuite tu ecris ta fonction CalculerMD5:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void CalculerMD5( AnsiString aFilename )
    {
        //  TO DO
    }
    j'ai essayer d'integerer la fonction qui fait appel a MD5wrapper (celle que j'utilise déja) mais soit il faut que je précise exactement le nom du fichier (donc le hash ne se fai que sur un seul fichier) soit si je donne seulement le repertoir a scanner (hash) le resultat est '-1'
    je ne sais pa où je me suis planté !!!

  14. #34
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    J'avou que je ne comprend pas bien ton problème...

    As tu compris que la fonction ScanDirectory scrute un répertoire fichier par fichier? Donc si tu fais appel a ta methode MD5 à l'endroit où moi j'ai mis l'appel a la fonction CalculerMd5, tous les fichiers du répertoire seront traités.

    Après c'est a toi de savoir le traitement que tu veut faire sur chaque fichier scanner.

    j'ai essayer d'integerer la fonction qui fait appel a MD5wrapper : Peut tu me montrer cette fonction?
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  15. #35
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    je te donne un mini projet pour tester le scan et le hash, si tu ne compren pa t'as qu'a me le dire
    merci sat83
    Fichiers attachés Fichiers attachés

  16. #36
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par sat83 Voir le message
    J'avou que je ne comprend pas bien ton problème...

    As tu compris que la fonction ScanDirectory scrute un répertoire fichier par fichier?
    Au fait, j'ai bien saisi le ScanDirectory c'est juste que je n'arrive pa a faire le hash pour tous les fichiers qui se trouve dans le repertoire choisi (ou disque choisi)
    - si je precise le fichier exacte j'ai le resultat du hash
    - si je donne juste le repertoire ou le disque jai comme resultat (-1)
    en principe avec le mini projet que je t'ai envoyé tu devrai trouvé où je me suis planté

  17. #37
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    J'ai survolé rapidement ton code. Pour le moment, si tu enlève les portions de code que je t'ai donné, il n'y a pas grand chose!

    La première étape est de définir exactement ce que tu veux faire. Prend un papier et un stylo et demande toi ce que tu veux exactement faire (j'ai l'impression que toi même tu ne sais pas très bien.)

    Ensuite tu procède par étape, et tu réalise des petites fonctions dont tu a besoins, et a la fin tu les assembles comme des briques pour faire l'application finale.

    Un exemple : tu sais que tu aura besoin d'une fonction qui te calcule le MD5 d'un fichier : écrit là!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AnsiString MD5HashFile( AnsiString aFileName ) ;
    {
       //# paramètre d'entrée : chemin+nom du fichier a haser
       //# sortie : hash MD5 (32 caractères ex : 5da8aa7126701c9840f99f8e9fa54976
    }
    Réfléchie à comment tu veux sauvegarder les MD5 (fichier texte? base de donnée? fichier XML; fichier ini? etc, etc...) et commence a te documenter la dessus. Ensuite pareil, tu ecrit des petites fonction que tu pourra ensuite utilisé lors de "l'assemblage finale".

    Ce que tu essai de faire (scanner un répertoire a la recherche d'exe, et comparaison du hash MD5 du fichier avec celui précédemment enregistrer) n'est pas très compliqué et je suis persuader que tu va y arrivé. Mais le but n'est pas que je te fasse le programme entier!

    En revanche, si tu a des questions precise sur des portions de code que tu n'arrive pas a écrire, sur des fonctions que tu ne comprend pas, n'hésite pas a les poser, je répondrai avec plaisir.
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  18. #38
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Désolé sat83 si mais question ne sont pas très clair ! je vais essayer de l'étre !
    je t'éxplique exactement ce que je veux !
    - je voulais faire la recherche de fichiers, c'est faits avec le scanDirectory

    Mon probléme maintenant concernant le MD5 est le suivant:
    ** quand j'appui sur un boutton j'aurai la liste de tous les fichiers (.exe) qui se trouvent dans le repertoire choisit (ça je le fait facilement grace a toi) et a coté de chaque fichier il devrait y avoir son hash MD5 (ça je n'arrive pas a le faire).
    dans le code que tu mavais donné (md5 Wrapper) je dois préciser le nonm du fichier (par exple, "C:\\monrepertoire\\monfichier.exe"), j'arrive pas a modifier le code pour avoir le hash md5 de tous les fichiers qui se trouvent dans ("C:\\monrepertoire") - c'est là que je plante -

    pour l'enregistrement, je pensé créer une petite base de donnée où je v mettre les donnée de sois disons virus - si j'en trouve biensur - (nom du virus, type, hash md5) en tout cas je pourrais utiliser les virus test de EICAR, sinon je simule de faux virus.
    après avoir créer et enregistré la base de donnée, a chaque fois que je fais le scan, je controle les hash md5 avec ceux de ma base de donnée.

    voila j'éspére que tu ma bien compris, si ce n'est pas le cas j'essayrai de l'étre plus, je te rappele que je bloque sur le hash des fichiers d'un repertoire, c'est tout ce qui me reste comme vrai probléme que je n'arrive pa a résoudre.
    Encore une fois merci pour toute ton aide

  19. #39
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Citation Envoyé par sossomj Voir le message
    pour l'enregistrement, je pensé créer une petite base de donnée où je v mettre les donnée de sois disons virus - si j'en trouve biensur - (nom du virus, type, hash md5) en tout cas je pourrais utiliser les virus test de EICAR, sinon je simule de faux virus.
    Attention le Hash MD5 n'est en rien spécifique a un virus, c'est juste la signature du fichier ! Donc tu ne pourra pas dire en fonction du hash MD5 si le fichier est contaminer par un virus, et encore moins lequel !

    En revanche ce que tu peux faire avec le MD5 c'est réaliser un premier scan sur un PC sain et sans aucun virus et recuperer le hash MD5 de chaque fichier (C'est ta base de donnée, tes infos de reference).

    Ensuite, a chaque scan tu compare le MD5 au MD5 de référence, et si il est différent, c'est que le fichier a été modifié (soit par un virus, soit par une mise a jour, soit par autre chose). Mais ca ne te permettra pas de definir par quel virus il a été infecter.

    Dans un premier temps, essai de :

    - Faire une fonction réutilisable pour calculer le MD5
    - Voir comment sauvegarder l'ensemble des hash MD5
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  20. #40
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par sat83 Voir le message

    En revanche ce que tu peux faire avec le MD5 c'est réaliser un premier scan sur un PC sain et sans aucun virus et recuperer le hash MD5 de chaque fichier (C'est ta base de donnée, tes infos de reference).

    justement c'st ce que je voulais faire je l'ai peut étre mal expliqué

    Ensuite, a chaque scan tu compare le MD5 au MD5 de référence, et si il est différent, c'est que le fichier a été modifié (soit par un virus, soit par une mise a jour, soit par autre chose). Mais ca ne te permettra pas de definir par quel virus il a été infecter.
    s'il te plais rien qu'une dérniére fois, comment faire le hash de tous les fichiers (.exe par exple) pour tous les fichiers qui sont dans un repertoire et comment l'afficher ces hash!

    pour le reste (base de donnée) je pourrai me débrouiller
    s'il te plais aide moi sat83

Discussions similaires

  1. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19
  2. Réponses: 2
    Dernier message: 27/02/2003, 01h33
  3. [Kylix] Aide sur BitBlt
    Par mic006 dans le forum EDI
    Réponses: 1
    Dernier message: 10/12/2002, 22h54
  4. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo