Author: serge rouveyrol Date: To: guilde Subject: Re: A propos du No eXecute d'AMD64
Le mercredi 09 juin 2004 a 02:53:54, Yves Martin a ecrit : > Selon Yves Martin <ymartin59@???>:
>
> > dans la version actuelle mais je pense que Linux
> > définit un seul segment qui couvre toute la mémoire (avec droit en
> > exécution)
> > et que sa valeur est posée dans tous les registres de segment (CS, DS, ES,
> > FS, GS, SS)
>
> Oops, mon brouillon de mail est parti... Et comme c'est faux, je veux
> corriger:
>
> Linux utilise 4 segments (include/asm-i386/segment.h):
> KERNEL_CS, KERNEL_DS, USER_CS, USER_DS
> et le segment de pile est bien fixé à USER_DS
>
> J'ai trouvé l'initialisation dans la GDT de KERNEL_CS et KERNEL_DS dans
> arch/i386/boot/setup.S mais pas les segments à USER_DS et USER_CS.
>
> Si à l'occasion je comprends pourquoi les attaques par buffer overflow sur
> la pile fonctionne sur Linux/i386 ...
parce que les descripteurs de chaque segment pointent sur la meme adresse.