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

Assembleur Discussion :

Quelles adresses mémoire non répertorié par la carte donné par Int 15/AX=E820h je peux écrire ?


Sujet :

Assembleur

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut Quelles adresses mémoire non répertorié par la carte donné par Int 15/AX=E820h je peux écrire ?
    Bonjour,

    Comment savoir quelles adresses mémoire non répertorié par la carte donné par Int 15/AX=E820h je peux écrire en assembly ?

    Je peux écrire sur certaines adresses mémoires non répertorié et je ne peux pas le faire sur d'autres, par exemple :

    Je ne peux pas écrire à l'adresse mémoire 4 273 995 773 qui n'est pas répertorié par Int 15/AX=E820h par contre je peux écrire à l'adresse mémoire 4 294 967 297 qui n'est pas répertorié non plus

    Il est indiqué sur cette documentation : http://www.uruk.org/orig-grub/mem64mb.html " The BIOS WILL NOT return a range description for the memory mapping of PCI devices, ISA Option ROM's, and ISA plug & play cards. This is because the OS has mechanisms available to detect them."

    Si c'est ça qui empêche d'écrire sur certaines zones mémoires comment je peux le savoir et connaître les emplacements exactes où je ne peux pas écrire à cause de PCI devices ou autres ?

    Je précise que je suis sur secteur d'amorçage et que j'utilise Virtual Box

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 118
    Points
    43 118
    Par défaut
    Je précise que je suis sur secteur d'amorçage et que j'utilise Virtual Box
    Tu es sur secteur d'amorçage, en mode réel ou protégé ? probablement en mode réel. En mode réel tu ne peux pas dépasser 1 Mo (sauf à utiliser la mémoire EMS sous MS-DOS) si je me souviens bien et tu es en registreS 16 bits. Tu n'écris peut-être que sur des adresses 16 bits en chargeant un registre 32 bits qui n'utilisera donc pas les 16 bits de poids fort en mode réel.

    D'autre part, tu es sur le BIOS fourni par VirtualBox, qui peut avoir un comportement non normal à la marge.

    Par ailleurs, certaines cartes d'extensions (sur le principe toute carte PCI peut le faire) exposent leurs registres de configuration dans l'espace mémoire avec registres pouvant être en lecture seule ou en écriture seule. Les retours de la fonction int 15h, AX=E820h n'indique aucune info à ce sujet.

    Et ça peut être autre chose que ce que je dis, surtout qu'on ne vois aucun code.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Je suis en mode protégé

    Le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    mov esi, 4273991677
    mov byte [ds:esi], 20
    mov cl, byte [ds:esi]
     
    cmp cl, 20
    je teste
     
    jmp $
    La gdt : gdt_teste3: db 255, 255, 0x00, 00010000b, 0x00, 11110011b, 10001111b, 0x00

    Pour résumer j'essaie d'écrire à l'adresse mémoire 4 273 995 773

    Pourquoi ne puis-je pas écrire au 4 273 995 773 alors que la carte n'indique pas cette zone mémoire comme indisponible ?

    Quand je veux écrire un 8 par exemple dans une zone mémoire parfois je peux et parfois je ne peux pas, certaines zones mémoire ne me laissent pas le faire et rien ne se passe. Il n'y a aucun moyen de savoir quelles adresses mémoire non répertoriées par la carte donnée par Int 15/AX=E820h je peux écrire en assembly ? Pas d'autre moyen que de tester si une zone mémoire peut être modifiée ou non ?

    Par ailleurs, certaines cartes d'extensions (sur le principe toute carte PCI peut le faire) exposent leurs registres de configuration dans l'espace mémoire avec registres pouvant être en lecture seule ou en écriture seule.
    Comment je peux y accéder ?

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 118
    Points
    43 118
    Par défaut
    Il manque le contenu du registre DS. Pour ta GDT, tu dois avoir au moins 3 entrées, la 1ère à 0, une entrée pour un segment code, une autre pour le segment données.

    Donnes le code complet.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Il manque le contenu du registre DS. Pour ta GDT, tu dois avoir au moins 3 entrées, la 1ère à 0, une entrée pour un segment code, une autre pour le segment données.

    Donnes le code complet.
    Le code complet :

    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
    mov ax, 40
    mov ds, ax
    mov esi, 4273991677
    mov byte [ds:esi], 20
    mov cl, byte [ds:esi]
     
    cmp cl, 20
    je teste
     
    jmp $
    gdt:
    	db 0x00, 0x00, 0x00, 0x00, 0x00, 00000000b, 00000000b, 0x00
    gdt_cs:
    	db 0xFF, 0xFF, 0x00, 0x00, 0x00, 10011011b, 11011111b, 0x00
    gdt_ds:
    	db 0xFF, 0xFF, 0x00, 0x00, 0x00, 10010011b, 11011111b, 0x00
    gdt_teste:
            db 0xFF, 0xFF, 0x00, 01111100b, 0x00, 10010011b, 00000000b, 0x00
    gdt_teste2:
            db 0xFF, 0xFF, 0x00, 01111100b, 0x00, 10011011b, 11011111b, 0x00
    gdt_teste3:
            db 255, 255, 0x00, 00010000b, 0x00, 11110011b, 10001111b, 0x00
     
    gdtend:

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 118
    Points
    43 118
    Par défaut
    ça fait très très longtemps que j'ai pas fait d'assembleur.

    D'après ce que je vois, si je ne fais pas d'erreur, DS pointe sur l'entrée 5 de ta gdt (40/8) soit gdt_teste3.

    Dans cette GDT, ton adresse de base n'est pas 0, ce qui fait que l'adresse physique appelée correspond à cette base + le registre esi.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    ça fait très très longtemps que j'ai pas fait d'assembleur.

    D'après ce que je vois, si je ne fais pas d'erreur, DS pointe sur l'entrée 5 de ta gdt (40/8) soit gdt_teste3.

    Dans cette GDT, ton adresse de base n'est pas 0, ce qui fait que l'adresse physique appelée correspond à cette base + le registre esi.
    Exact, ce qui fait 4 273 995 773

  8. #8
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 118
    Points
    43 118
    Par défaut
    Pour que tu comprenne le principe, si tu veux utiliser l'adresse 4273991677 (0xFEBFEFFD), l'adresse de base dans ta GDT doit être 0 ou par exemple 0xFEBF0000 et esi à 0xEFFD.

    Comme en mode réel, segment:offset, la différence étant que la valeur dans le registre segment est un descripteur en mode protégé.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Pour que tu comprenne le principe, si tu veux utiliser l'adresse 4273991677 (0xFEBFEFFD), l'adresse de base dans ta GDT doit être 0 ou par exemple 0xFEBF0000 et esi à 0xEFFD.

    Comme en mode réel, segment:offset, la différence étant que la valeur dans le registre segment est un descripteur en mode protégé.


    J'ai bien compris le principe

    Je veux écrire dans : 4 273 995 773
    L'adresse de base dans la gdt est de 4096
    esi = 4 273 991 677

    l'adresse physique appelée correspond à cette base + le registre esi, donc 4096 + 4 273 991 677 = 4 273 995 773

  10. #10
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 118
    Points
    43 118
    Par défaut
    J'ai pas l'impression, mais il faudrait tester avec un deboggeur (avec l'émulateur Bochs par exemple qui contient un déboggueur ptraique de mémoire) mais perso j'ai pas le temps.

    J'ai retrouvé une gdt qui devrait être valide dans mes vieux trucs :

    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
    gdtr:                                            dw gdt_fin - gdt
                                                     dd gdt
     
     
     
    gdt:                                             dd 0
                                                     dd 0
    SYS_CODE                                         equ $-gdt
                                                     dd 0x0000ffff
                                                     dd 0x00cf9a00            ; segment code 32 bits début 0 limite max granulité, ring 0
    SYS_DATA                                         equ $-gdt
                                                     dd 0x0000ffff
                                                     dd 0x00cf9200            ; segment data 32 bits début 0 limite max granulité, ring 0
    REAL_CODE                                        equ $-gdt
                                                     dd 0x0000ffff
                                                     dd 0x00009a00            ; segment code 16 bits début 0 limite max granulité, ring 0
    REAL_DATA                                        equ $-gdt
                                                     dd 0x0000ffff
                                                     dd 0x00009200            ; segment code 16 bits début 0 limite max granulité, ring 0
    gdt_fin:
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  11. #11
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Juste au cas où , tu as bien configurer 4GO de RAM sur VirtualBox ?

    Parce que là tu lis/écris une donné donc si ça marche pas :
    Tu n'as pas assez de RAM (manque de RAM ou droit)
    Cette adresse n'est pas adressable (ce n'est pas de la RAM).

  12. #12
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 118
    Points
    43 118
    Par défaut
    Ah oui, c'est tellement évident que je ne l'ai pas évoqué.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  13. #13
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Oui , j'avoue que ça semble évident lol

    Mais quand je lis ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mov byte [ds:esi], 20
    mov cl, byte [ds:esi]
    Il y'a pas de raison qu'on ne recupere pas 20 , même si j'ai pas forcément compris l’intérêt de ds ici, pourquoi ne pas tenter de lire/écrire directement en mémoire avec une adresse en registre ?

    Après je ne fais quasiment pas du x86 (a part pour les instructions SIMD) , et je connais encore moins ces spécificités.

  14. #14
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    J'ai pas l'impression, mais il faudrait tester avec un deboggeur (avec l'émulateur Bochs par exemple qui contient un déboggueur ptraique de mémoire) mais perso j'ai pas le temps.

    J'ai retrouvé une gdt qui devrait être valide dans mes vieux trucs :

    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
    gdtr:                                            dw gdt_fin - gdt
                                                     dd gdt
     
     
     
    gdt:                                             dd 0
                                                     dd 0
    SYS_CODE                                         equ $-gdt
                                                     dd 0x0000ffff
                                                     dd 0x00cf9a00            ; segment code 32 bits début 0 limite max granulité, ring 0
    SYS_DATA                                         equ $-gdt
                                                     dd 0x0000ffff
                                                     dd 0x00cf9200            ; segment data 32 bits début 0 limite max granulité, ring 0
    REAL_CODE                                        equ $-gdt
                                                     dd 0x0000ffff
                                                     dd 0x00009a00            ; segment code 16 bits début 0 limite max granulité, ring 0
    REAL_DATA                                        equ $-gdt
                                                     dd 0x0000ffff
                                                     dd 0x00009200            ; segment code 16 bits début 0 limite max granulité, ring 0
    gdt_fin:


    Sur le principe qu'est ce que je n'aurais pas compris, en mode protégé pour obtenir l'adresse physique ne faut-il pas faire : adresse de base indiqué dans la gdt + le contenu du registre esi ?

    Aujourd'hui, 06h10
    Kannagi
    Juste au cas où , tu as bien configurer 4GO de RAM sur VirtualBox ?

    Parce que là tu lis/écris une donné donc si ça marche pas :
    Tu n'as pas assez de RAM (manque de RAM ou droit)
    Cette adresse n'est pas adressable (ce n'est pas de la RAM).
    Je ne peux pas configurer 4GO de RAM sur VirtualBox, j'ai mis 512 mo mais je ne pense pas que ce soit le problème car je peux écrire à l'adresse mémoire 4 294 967 297 qui est plus grande que 4 273 995 773 où là je ne peux rien modifier

    La configuration de la ram indique le nombre de case mémoire que je peux remplir, ici tout est pratiquement vide car je suis sur secteur d'amorçage, ça ne peut pas être un dépassement de limite de ram car je peux toujours remplir une autre case mémoire sans problème

    Il y'a pas de raison qu'on ne recupere pas 20 , même si j'ai pas forcément compris l’intérêt de ds ici, pourquoi ne pas tenter de lire/écrire directement en mémoire avec une adresse en registre ?

    Après je ne fais quasiment pas du x86 (a part pour les instructions SIMD) , et je connais encore moins ces spécificités.
    ds sert à se déplacer dans la gdt, pour accéder à la mémoire j'utilise la gdt et le registre esi en mode protégé, il y a certaines zones mémoire où on ne peut pas écrire, Int 15/AX=E820h nous indique certaines de ces zones

    En outre je ne peux pas écrire à l'adresse 4 273 995 773 à cause du "bus pci" semble t-il d'après quelques recherche sur internet :

    Adresse mémoire 0xD0000000-0xFEBFFFFF Bus PCI
    Adresse mémoire 0xD0000000-0xFEBFFFFF NVIDIA Quadro FX 3800
    Adresse mémoire 0xD0000000-0xFEBFFFFF Pont PCI vers PCI

  15. #15
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 118
    Points
    43 118
    Par défaut
    Sur le principe qu'est ce que je n'aurais pas compris, en mode protégé pour obtenir l'adresse physique ne faut-il pas faire : adresse de base indiqué dans la gdt + le contenu du registre esi ?
    Pas forcément un prob. de compréhension, mais peut-être une GDT erronée par rapport à ce que tu veux faire.

    La configuration de la ram indique le nombre de case mémoire que je peux remplir, ici tout est pratiquement vide car je suis sur secteur d'amorçage, ça ne peut pas être un dépassement de limite de ram car je peux toujours remplir une autre case mémoire sans problème
    Je pense que si tu essayes d'accéder à une adresse physique inexistante, mais dans l'espace d’adressage déclaré par la GDT, tu as un comportement non défini, mais il faudrait vérifier dans la documentation.

    En outre je ne peux pas écrire à l'adresse 4 273 995 773 à cause du "bus pci" semble t-il d'après quelques recherche sur internet :

    Adresse mémoire 0xD0000000-0xFEBFFFFF Bus PCI
    Adresse mémoire 0xD0000000-0xFEBFFFFF NVIDIA Quadro FX 3800
    Adresse mémoire 0xD0000000-0xFEBFFFFF Pont PCI vers PCI
    Comme déjà expliqué, certaines cartes PCI vont exposer leurs registres lecture/écriture dans l’espace d'adressage. Si une adresse représente un registre en lecture d'une carte PCI, tu ne pourras pas écrire dessus, c'est normal.

    Si tu veux une bonne cartographie de la mémoire, il faut utiliser les valeurs de SMBIOS. Les valeurs de l'int 0x15 sont à mon avis pas forcément fiables, surtout avec un BIOS embarqué dans un hyperviseur.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Carte reseau non detecte par Windows Vista
    Par jawed dans le forum Installation
    Réponses: 1
    Dernier message: 03/10/2007, 12h15
  2. Réponses: 32
    Dernier message: 18/06/2007, 08h28
  3. carte wifi non reconnue par vista
    Par youp_db dans le forum Windows Vista
    Réponses: 2
    Dernier message: 20/05/2007, 17h51
  4. Adresse IP non prise en compte par le système
    Par lesouriciergris dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 08/03/2007, 21h50

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