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++ Discussion :

Protection de code source


Sujet :

C++

  1. #1
    Invité
    Invité(e)
    Par défaut Protection de code source
    Bonjour,
    J'ai fait un sujet semblable sur un autre forum d'informatique mais pas de réponse donc je poste ici ;

    J'ai quelque questions sur la protection de fichier avec thermida tout d'abord comment sa fonctionne ?
    Est ce que xenocode est un logiciel semblable a thermida ?
    Peut on enlever la protection apporté par thermida ? comment ?

    Je me demande aussi comment un antivirus fait pour vérifié un fichier , j'ai entendu parler des signature en hexadecimal que l'on peut modifier avec avec un éditeur Hexadécimal et la je me pose plein de question pourquoi l'hexadecimal ? pourquoi prendre juste une signature si on peut prendre la totalité du code source ? et est ce que un anti-virus peut lire le fichier si il est protégé par thermida ? comment vont-ils faire pour voir la légitimité du code source ?

    J'ai vu aussi des aussi des vidéo ou il modifiais la signature en héxadecimal 0000 par F par exemple et la je comprend plus rien...

    Merci a ceux qui répondront a mes questions

    et j'aurais voulu savoir vous personnellement est ce que vous vous souciez de la protection du code source de votre programme si oui vous utiliser quoi ?

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,
    Citation Envoyé par yohann2008 Voir le message
    Bonjour,
    J'ai fait un sujet semblable sur un autre forum d'informatique mais pas de réponse donc je poste ici ;

    J'ai quelque questions sur la protection de fichier avec thermida tout d'abord comment sa fonctionne ?
    Est ce que xenocode est un logiciel semblable a thermida ?
    Peut on enlever la protection apporté par thermida ? comment ?

    Je me demande aussi comment un antivirus fait pour vérifié un fichier , j'ai entendu parler des signature en hexadecimal que l'on peut modifier avec avec un éditeur Hexadécimal et la je me pose plein de question pourquoi l'hexadecimal ? pourquoi prendre juste une signature si on peut prendre la totalité du code source ? et est ce que un anti-virus peut lire le fichier si il est protégé par thermida ? comment vont-ils faire pour voir la légitimité du code source ?

    J'ai vu aussi des aussi des vidéo ou il modifiais la signature en héxadecimal 0000 par F par exemple et la je comprend plus rien...

    Merci a ceux qui répondront a mes questions

    et j'aurais voulu savoir vous personnellement est ce que vous vous souciez de la protection du code source de votre programme si oui vous utiliser quoi ?
    Voilà beaucoup de questions...

    Tu aurais sans doute eu intérêt à créer plusieurs discussions, histoire de permettre à "ceux qui savent" de ne répondre qu'à ce qu'ils savent, à savoir:
    • une discussion pour demander des informations sur thermida et sur xenocode
    • une discussion sur la signification de l'hexadécimal
    • une discussion sur le fonctionnement des antivirus
    • une discussion sur la modification de la signature des videos
    (le tout en choisissant correctement la rubrique dans laquelle la discussion aurait eu le plus de chance d'obtenir une réponse )

    Car, si on prend mon cas, par exemple:
    Thermida xenocode ... Connais pas

    Mais deux choses sont sures :
    • C++ est un langage compilé, ce qui fait que, quoi qu'il arrive, ce ne sera pas ton code source qui sera attaqué, mais bien le code (binaire) de ton application
    • Quelle que soit la méthode de protection choisie pour éviter, non pas de te faire véroler ton code, mais plutot de te faire pirater ton application (en évitant de payer la licence pour celle-ci, le plus souvent ), aucune méthode n'est totalement infallible, au grand dam des plus grands fournisseurs de logiciel
    Concernant le "pourquoi l'hexadécimal", la réponse est simple : parce que c'est la base numérique la plus aisée à utiliser lorsqu'on travaille en binaire

    En effet, la base de calcul hexadécimal permet de représenter seize valeurs avec un seul symbole (de 0 à 15, ou, plutot, de 0 à A ).

    Or, l'ordinateur travaille d'office en base 2 (il ne dispose que de deux symboles pour représenter son ensemble de valeurs : 0 et 1), alors que nous (les humains ) sommes beaucoup plus habitués à compter en base 10 (avec 10 symboles pour les untiés :de 0 à 9 )

    Il se fait que, si l'on groupe 8 "bits" (8 fois un symbole binaire), il est, justement, possible de représenter les 16 valeurs potentielles de la base hexadécimale, et c'est donc tout à fait naturellement que l'on a décidé d'utiliser cette base qui rend quand meme la lecture plus simple : A en hexadécimal s'écrivant 00001010 en binaire

    (d'ailleurs, toute l'architecture des processeurs "grand public" se base sur cette constatation )

    Pour autant que je sache (mais je peux me tromper très lourdement), les antivirus cherchent surtout certaines séquences de valeurs qui sont la "signature" des virus dans l'ensemble des données et réagissent à cela

    Que la partie binaire ait été protégée ou non par un logiciel ne changera pas grand chose : généralement, le virus va modifier le binaire après qu'il ait été généré (et potentiellement "crypté"), ce qui fait que sa signature ne sera vraisemblablement pas impactée par le cryptage en question

    Enfin, concernant ta question sur la video, il faut juste faire attention au fait qu'on a tendance à utiliser le terme signature à tord et à travers

    Il existe une foulle assez impressionnante de signature potentielles sur un fichier:
    • La signature (l'empreinte) du fichier en lui meme, qui peut permettre de s'assurer que le fichier n'a pas été corrompu lors de son transfert
    • la signature indiquant le type de fichier dont il s'agit effectivement (et qui sert à certaines application pour savoir si tu travailles sur une archive ou sur un fichier video, par exemple),
    • la signature du contenu "réel" du fichier (hors tout ce que l'on pourrait appeler les "en-têtes" permettant de s'assurer que l'on a bien affaire à un fichier d'un type donné)
    • la signature permettant de s'assurer que la personne qui tente d'utiliser le fichier a bien payé la licence qui lui permet de le faire
    • la signature permettant d'autentifier l'utilisateur qui envoie le fichier
    • j'en passe et de meilleures ...
    Comme une signature n'est pas l'autre, vas savoir quelle signature tu modifies réellement avec tes videos
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre régulier
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Points : 99
    Points
    99
    Par défaut
    Correction: Themida, pas thermida.
    Ensuite themida est très puissant et donnera une protection contre 90% des gens qui tenteront de "decompresser" ton appli. (Themida ajoutant protection sur protection)
    Le meilleur exemple que j'ai en tete est celui de MapleStory. Le client est protegé par themida, et pourtant, cela fait presque 6ans que des serveurs privés existent, et pour cela, il a fallu casser la protection themida, et changer l'ip du serveur qui se situe en plein dans le programme !
    Donc, aucune protection logicielle !
    A toi d'etre malin =)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci d'avoir répondu a mon sujet

    Koala01 tu dit que c'est le code source qui sera attaqué, mais le code (binaire) mais c'est pour ensuite le décompiler (désassembler) ? Que signifie se faire vérolé son code ?

    Pour l'hexadécimal , donc la signature se trouve donc aussi sur le code binaire , octal , base de 3 etc du fichier ?

    Tu voulais bien dire de 0 a F ? Donc un éditeur hexadécimal vas convertir chaque 8bits en 1 nombre hexadécimal ?

    je comprend pas pourquoi on prend 8 bits pour la conversion ?
    http://www.elektronique.fr/cours/cod...exadecimal.php

    Peut-on trouver ou mettre d'autre symbole que du binaire dans un fichier .exe ? par exemple en attente d'un décryptage (les symboles pas binaire situé après un code binaire se chargeant de les décrypter )

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par yohann2008 Voir le message
    Bonjour et merci d'avoir répondu a mon sujet

    Koala01 tu dit que c'est le code source qui sera attaqué, mais le code (binaire) mais c'est pour ensuite le décompiler (désassembler) ? Que signifie se faire vérolé son code ?
    Bon, ca va être dur

    Tu dois comprendre que tout ton ordinateur n'est qu'un ensemble d'interrupteur et de "portes logiques" qui permettent, en fonction de la position de certains interrupteurs, de laisser passer (ou non) le courent.

    En informatique, on appelle ces interrupteurs des bits.

    Mais un bit n'a donc que deux états possibles : il laisse passer le courent, ou il ne le laisse pas passer.

    On peut donc représenter l'état d'un bit avec deux symboles : 0 le courent ne passe pas, 1 le courent passe.

    C'est ce que l'on appelle la notation binaire.

    Mais comme deux valeurs pour représenter tout ce que l'on veut, c'est pas beaucoup, on a regroupé les bits par 8 (enfin, dans les processeurs "grand public"), afin de pouvoir représenter 2^8 (2x2x2x2x2x2x2x2) = 256 valeurs.

    C'est ce que l'on appelle le byte.

    Le processeur est capable de travailler avec des bytes (souvent meme avec 4 ou 8 bytes en meme temps) et peut, selon le cas, considérer la valeur qui est représentée par un (ensemble de) byte(s) soit comme une instruction, soit comme une valeur.

    Il faut comprendre que, lorsque tu écris for(i=0;i<value;++i) (ou quoi que ce soit d'autre), cela n'est pas directement compréhensible par le processeur...:

    Il faut traduire cette instruction que tu arrives à comprendre en un ensemble de byte que le processeur sera en mesure de comprendre.

    Pour ce faire, il existe deux possibilités :

    Soit, on utilise une application qui va prendre le code que tu as écrit et le traduire "à la volée" (comprend : en cours d'exécution) en un ensemble de byte compréhensible par le processeur pour lui dire quoi faire (on utilise alors ce que l'on appelle un langage "interprété")
    Soit on utilise une application qui va traduire ton code une bonne fois pour toute et générer un fichier qui contient directement les instructions sous une forme compréhensible par le processeur, qui n'aura qu'à les utiliser (on utilise alors ce que l'on appelle un langage "compilé")

    C++ fait partie des langages dits "compilés": l'application que tu fournis à un utilisateur est en réalité un (ensemble de) fichiers contenant les instructions au format binaire que le compilateur aura généré à partir de ton code.

    Il est possible de "désassembler" un fichier binaire afin d'y retrouver la suite d'instructions et le valeurs qui servent au processeur, mais ce que l'on récupère n'est que "le résultat de la compilation", et il n'est donc pas possible de retrouver ton code tel qu'il était écrit à l'origine.

    Mais il est malgré tout possible de comprendre ce qui est fait
    Pour l'hexadécimal , donc la signature se trouve donc aussi sur le code binaire , octal , base de 3 etc du fichier ?

    Tu voulais bien dire de 0 a F ? Donc un éditeur hexadécimal vas convertir chaque 8bits en 1 nombre hexadécimal ?
    binaire, octal, décimal et hexadécimal ne sont que des termes qui représentent le nombre de symboles que l'on peut utiliser avant de devoir passer à la "colonne supérieure":

    En binaire, on a deux symboles possibles: 0 et 1... pour représenter la valeur "2", il faut donc passer à la colonne suivante, et on le fait par la valeur 10
    En octal, on dispose de 8 symboles : 0, 1, 2, 3, 4, 5, 6, et 7, et pour représenter la valeur 9 il faudra donc utiliser deux symboles cote à cote : 11
    En décimal (c'est la base de calcul que nous apprenons à maitriser dés l'école primaire ), on dispose de 10 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9, et tu sais comment représenter la valeur "douze"

    En hexadécimal enfin, on dispose de 16 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F et pour représenter la valeur 31, nous écrirons alors 1F.

    Le calcul de la valeur se fait à chaque fois de la meme manière:
    Soit X = la valeur du symbole, C le numéro de la colonne et B le nombre de symboles utilisable, pour chaque colonne, on calcule X *(B^C)
    on additionne le résultat obtenu pour chaque colonne

    Ainsi, en fonction de la base envisagée, 111 vaudra
    • 7 ( (1*2^2) +(1*2^1)+(1*2^0) ) en binaire
    • 73 ( (1*8^2)+(1*8^1)+(1*8^0) ) en octal
    • 111 ((1*10^2)+(1*10^1)+(1*10^0) ) en décimal
    • 273((1*16^2)+(1*16^1)+(1*16^0) ) en hexadécimal
    Les bases octales et hexadécimales ont une particularité intéressante par rapport à la base décimale : il y a toujours un ensemble de bits complet qui permet de représenter l'ensemble des symboles disponibles pour ces deux bases :

    • 3 bits permettent de représenter les 8 symboles de la base octale( 111 en binaire vaut 7 en décimal (7 en octal), alors que quand 1000 en binaire vaut 8 en décimal et sera représenté en octal sous la forme de 10)
    • 4 bits permettent de représenter les 16 symboles de la base hexadécimale (1111 en binaire vaut 15 en décimal (F en hexadécimal) alors que 10000 en binaire vaut 16 en décimal et sera représenté en hexadécimal sous la forme de 10)
    Comme il est plus facile de lire AA et de se dire qu'on est en hexadécimal plutot que de lire 10101010 en binaire, tu comprendras qu'on préfères utiliser le format hexadécimal, bien que cela représente toujours la même valeur (à savoir 170 en décimal )

    Il faut bien comprendre que, que l'on écrive 10101010 (binaire), 252(octal), 170(décimal) ou AA(hexadécimal), la valeur reste tout à fait la même, il n'y a que la convention de conversion qui change


    je comprend pas pourquoi on prend 8 bits pour la conversion ?
    http://www.elektronique.fr/cours/cod...exadecimal.php
    Simplement parce que 8 bits, c'est surtout 2 x 4 bits, et que 4 bits permettent de représenter les 16 valeurs de l'intervalle possible en hexadécimale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    binaire     |1100|1101| (205 décimal)
    hexadécimal | C  | D  | (205 décimal)
    Peut-on trouver ou mettre d'autre symbole que du binaire dans un fichier .exe ? par exemple en attente d'un décryptage (les symboles pas binaire situé après un code binaire se chargeant de les décrypter )
    Non, un fichier binaire considère tout comme étant du binaire...

    L'interprétation que l'on en fait, la manière dont on va représenter une valeur donnée, peut varier, mais la valeur restera strictement identique.

    Ainsi, on peut représenter toutes les lettres de l'alphabet (et d'autres symboles encore) en décidant de prendre 8 bits consécutifs et en utilisant la table de conversion que l'on appelle "table ASCII", qui est une table qui indique (pour un groupe de 8 bits donnés) à quel caractère correspond chaque valeur possible
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup de m'avoir ré expliqué

    "Il se fait que, si l'on groupe 8 "bits" (8 fois un symbole binaire), il est, justement, possible de représenter les 16 valeurs potentielles de la base hexadécimale"
    Mais en prenant 4 bits les 16 valeurs de l’hexadécimal sont toute représentée...
    vous le dites vous même ici ;
    "Simplement parce que 8 bits, c'est surtout 2 x 4 bits, et que 4 bits permettent de représenter les 16 valeurs de l'intervalle possible en hexadécimale:"
    et pourquoi ce x2 ?

    Est ce que les processeur x86 et x32 c'est pareil ?

    En faites quand on crypte les données d'un fichier binaire ont fait une sorte de réarrangement des 0 et 1 en fonction de l’algorithme utilisée ?

    Et quelques questions comme ça ^^ ;
    C'est quoi la différence entre un éditeur hexadécimal et un désassembleur ?
    Et il possible de crypté plusieurs fois un fichier exe (2 ou 3) pour empêcher du cracking ? (j'aurais pensé que a un moment le fichier serait "casser")
    Dernière modification par Invité ; 08/04/2012 à 03h03.

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par yohann2008 Voir le message
    Merci beaucoup de m'avoir ré expliqué

    "Il se fait que, si l'on groupe 8 "bits" (8 fois un symbole binaire), il est, justement, possible de représenter les 16 valeurs potentielles de la base hexadécimale"
    En fait, je me suis trompé... avec 8 bits, on peut représenter 256 valeurs potentielles ((2x2x2x2x2x2x2x2).

    Mais avec 8 bits, on peut avoir deux groupes de 4 bits, et donc, deux valeurs hexadécimales (car avec 4 bits, on peut représenter 16 valeurs, et 16 x 16 donne, justement... 256 )
    Mais en prenant 4 bits les 16 valeurs de l’hexadécimal sont toute représentée...
    vous le dites vous même ici ;
    "Simplement parce que 8 bits, c'est surtout 2 x 4 bits, et que 4 bits permettent de représenter les 16 valeurs de l'intervalle possible en hexadécimale:"
    et pourquoi ce x2 ?
    Ben, parce que 2 x 4 = 8 ...

    Si tu prend un groupe de 8 bits, tu peux prendre deux "sous groupes" de 4 bits, qui, mis en communs, correspondront à la meme valeur que ton groupe de 8 bits

    Est ce que les processeur x86 et x32 c'est pareil ?
    Cela fonctionne, en tout cas, selon le même principe...

    la seule chose, c'est qu'il faut quatre (tiens, 4 est une puissance de 2D ) groupes de 8 bits pour arriver à 32 bits, et qu'il en faut 8 (tiens, c'est, encore 8 est, encore une puissance de deux ) pour obtenir 64 bits et que les valeurs admises sont donc beaucoup plus importantes (de l'ordre de 4 milliards (2 ^32) en 32 bits, de l'ordre de 10 ^ 19 (2^64) en 64 bits)

    En faites quand on crypte les données d'un fichier binaire ont fait une sorte de réarrangement des 0 et 1 en fonction de l’algorithme utilisée ?
    Au niveau binaire (car il ne faut pas oublier que le binaire, ce n'est qu'une représentation compréhensible par l'ordinateur de données que l'on choisira de représenter d'une autre manière pour qu'elles soient compréhensible par nous ), on pourrait dire que le résultat du cryptage est, effectivement une sorte de réarrangement des bits, mais il serait plus juste de dire que le cryptage effectue des calculs au niveau binaires et que l'on récupère le résultat de ce calcul
    Et quelques questions comme ça ^^ ;
    C'est quoi la différence entre un éditeur hexadécimal et un désassembleur ?
    Un héditeur hexadécimal va se contenter d'afficher les données sous une forme hexadécimale.

    Un désassembleur va interpréter les données qu'il obtiens et les présenter sous la forme d'une successions d'instructions et de valeurs (utilisées par les instructions), telle que le processeur les comprendra.

    Pour être précis, on a eu trois génération de langages depuis que l'informatique existe:
    1. Le langage binaire, qui représentait les données telles que l'ordinateur les utilisait, sous la forme de 0 et de 1 qui se suivaient... C'était vraiment pas facile à comprendre, alors, on a mis au point
    2. L'assembleur (qui est considéré comme la deuxième génération de lanage), qui est un langage remplaçant les instructions comprises par le processeur en "mnémoniques"... LDAA XXX indiquait, par exemple, qu'il fallait charger le contenu de l'adresse mémoire XXX dans la partie A de l'accumulateur. C'était plus facile à comprendre, mais ce n'était toujours pas évident.
    3. On a donc mis au point des langages "proches du langage humain", comme Ada, Cobol, C, C++, java ou C#. Ils rentrent tous dans le groupe de langage que l'on qualifie de "troisième génération".

    Le désassembleur va présenter le programme sous une forme proche du langage assembleur, et donc permettre à certain de comprendre ce qui est fait
    Et il possible de crypté plusieurs fois un fichier exe (2 ou 3) pour empêcher du cracking ? (j'aurais pensé que a un moment le fichier serait "casser")
    On ne peut déjà pas crypter un exe sans fournir un logiciel qui permettra de le décrypter car, autrement, le processeur ne comprendra absolument pas ce qu'il doit faire

    Ce que l'on crypte généralement, ce sont des données, et il n'y a généralement pas vraiment de sens à crypter une seconde fois des données qui ont déjà été cryptées une première fois, simplement parce que celui qui arrivera à les décrypter une première fois arrivera à le faire une seconde fois
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Que la partie binaire ait été protégée ou non par un logiciel ne changera pas grand chose : généralement, le virus va modifier le binaire après qu'il ait été généré (et potentiellement "crypté"), ce qui fait que sa signature ne sera vraisemblablement pas impactée par le cryptage en question
    J'ai entendu parler des crypter runtime , comment il marche ?

    Pourquoi ne pas prendre la base 32 ou 8 pour lire une signature ?

    et si on modifier la signature d'un fichier , en hexadécimal par exemple on modifie 1 lettre sa modifie 4bits ! mais comment sa peut fonctionner car sa doit modifié les instructions donné au processeur , non ?

    Merci encore

Discussions similaires

  1. Protection du code source - Programme PHP
    Par safener dans le forum Cloud Computing
    Réponses: 0
    Dernier message: 01/08/2014, 19h29
  2. Réponses: 4
    Dernier message: 12/11/2013, 14h34
  3. protection du code source et des données
    Par drick35 dans le forum Android
    Réponses: 2
    Dernier message: 22/04/2013, 15h41
  4. protection du code source
    Par sam01 dans le forum Droit
    Réponses: 3
    Dernier message: 28/06/2006, 11h43

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