LINUX.ORG.RU

Ответ на: комментарий от Deleted

я через gdb посмотрел, как вызываются функции через plt. В федоре идёт ленивое связывание, адрес функции актуализируется в момент первого использования. В убунте адрес функции известен сразу в момент загрузки.

svu ★★★★★
() автор топика

Не знаю что такое relro, но судя по security matrix для пакетов собранных в Fedora оно включено.

А вот по поводу изменения дефолтных параметров самого gcc поставляемого в Fedora относительно недавно была жаркая дискуссия в рассылке. И вывод такой: fedora следует принципу upstream first, и параметры компилятора по умолчанию следуют апстримным соглашениям.

alpha ★★★★★
()
Ответ на: комментарий от alpha

А вот по поводу изменения дефолтных параметров самого gcc

Да, я именно про это. Про собранное мной.
Спасибо за объяснение. А ссылочкой не поделитесь?

svu ★★★★★
() автор топика
Последнее исправление: svu (всего исправлений: 1)

Сколько ресурсов компа отнимает этот ваш relro?

anonymous
()
Ответ на: комментарий от svu

Почему так?

В федоре идёт ленивое связывание, адрес функции актуализируется в момент первого использования. В убунте адрес функции известен сразу в момент загрузки.

При втором варианте запуск приложений медленнее. Даже app --version будет загружать все библиотеки и разрешать их символы.

xaizek ★★★★★
()
Ответ на: комментарий от alpha

ясно, спасибо. вопрос отвечен!

svu ★★★★★
() автор топика
Ответ на: комментарий от Deleted

https://www.opennet.ru/opennews/art.shtml?num=27938
Старенькая статья правда.
Глянуть как оно можно на простейшем хелоуворде

gcc -g -o test1 test.c
checksec --file=test1 --output=cli --format=cli

И сравнить с

gcc -g -Wl,-z,relro,-z,now -o test2 test.c
checksec --file=test2 --output=cli --format=cli

imul ★★★★★
()
Ответ на: комментарий от EXL
$ checksec --file=/usr/lib/Xorg
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      Symbols         FORTIFY Fortified       Fortifiable  FILE
Partial RELRO   Canary found      NX enabled    PIE enabled     No RPATH   No RUNPATH   No Symbols      Yes     12     25       /usr/lib/Xorg
Deleted
()

а в федоре выключен?

Странно, Fedora 30 x86_64:

$ checksec --file /usr/bin/ls
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      Symbols         FORTIFY Fortified       Fortifiable  FILE
Full RELRO      Canary found      NX enabled    PIE enabled     No RPATH   No RUNPATH   No Symbols      Yes     5               17      /usr/bin/ls
Wizard_ ★★★★★
()
Ответ на: комментарий от EXL

С дефолтными параметрами пишет PARTIAL:

$ checksec --file ./hello
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      Symbols         FORTIFY Fortified       Fortifiable  FILE
Partial RELRO   No canary found   NX enabled    No PIE          No RPATH   No RUNPATH   90 Symbols     No       0               0       ./hello

При этом можно и без скомпилировать:

$ gcc -g -O0 -Wl,-z,norelro -o hello2 ./hello.c
$ checksec --file ./hello2
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      Symbols         FORTIFY Fortified       Fortifiable  FILE
No RELRO        No canary found   NX enabled    No PIE          No RPATH   No RUNPATH   90 Symbols     No       0               0       ./hello2

Wizard_ ★★★★★
()

Full relro позволяет загружать so-шки на лету? Передавать указатели на функции? Или приняв такой режим работы программы требуется сознательно отказаться от небезопасной функциональности? По типу как в ядре Linux можно отключать загрузку модулей. Сильно не пинайте, просто я опять что-то не знал об этой вселенной.

I-Love-Microsoft ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.