2011-08-11 25 views

Odpowiedz

8

Znalazłem odpowiedź here:

gcc, linker GNU i glibc dynamiczny linker współpracy do wdrożyć pomysł nazwie tylko do odczytu relokacji lub relro. Umożliwia to łącznikowi oznaczenie części wykonywalnej lub (częściej) biblioteki współdzielonej jako będącej tylko do odczytu po zastosowaniu dynamicznych relokacji, które zostały zastosowane .

Może być używany do zmiennych globalnych tylko do odczytu, które są inicjowane na coś, co wymaga przeniesienia, na przykład adresu funkcji lub innej zmiennej globalnej. Ponieważ zmienna globalna wymaga inicjowania w czasie wykonywania w postaci dynamicznej delokalizacji, , nie może zostać umieszczona w segmencie tylko do odczytu. Ponieważ jednak jest on określony jako , a zatem nie może być zmieniony przez program , dynamiczny linker może oznaczyć go jako tylko do odczytu po zastosowaniu dynamicznej relokacji .