Dnia Sat, 1 Jul 2006 15:04:10 +0200
Paweł Sikora <[EMAIL PROTECTED]> napisał(a):

> (opcja -fPIE dla programów, lub -fPIC dla bibliotek).
> 
> compute:
>         call    __i686.get_pc_thunk.cx                [1]
>         addl    $_GLOBAL_OFFSET_TABLE_, %ecx          [1]
>         movl    [EMAIL PROTECTED](%ecx), %edx                  [2]
>         movl    [EMAIL PROTECTED](%ecx), %eax                  [3]
>         addl    (%edx), %eax                       [2]
>         ret
> 
>         .local  y
>         .comm   y,4,4
>         .comm   x,4,4
> 
> __i686.get_pc_thunk.cx:
>         movl    (%esp), %ecx
>         ret
> 
> 
> np. w przypadku x86-64 (które ma nowy tryb adresowania względem
> wskaźnika instrukcji %rip) powyższe dwa warianty kodu wyglądają tak:
> (z -fPIE)
> compute:
>         movq    [EMAIL PROTECTED](%rip), %rdx
>         movl    y(%rip), %eax
>         addl    (%rdx), %eax
>         ret
domyslam sie ze to relocated instruction
pointer, rzeczywiście ciekawy wynalazek.
> jak czujesz niedosyt, to ponękaj gugla: ELF + GOT, ELF + PLT
> oraz zerknij w http://www.phrack.org/show.php?p=56&a=7
dzieki wielkie :)
poczułem że jednak ass to podstawa i trzeba go ogarnąć.
_______________________________________________
pld-devel-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl

Odpowiedź listem elektroniczym