Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Разделяемые библиотеки в Linux компилируются в режиме PIC. Соответственно, отобразить библиотеку по произвольным адресам проще, чем динамическую библиотеку в Windows.
До ASLR, EXE всегда загружались в адрес 0x0040000 и могли полагаться на этот факт.
Никогда не понимал, кто мешает разработчикам компиляторов использовать два отдельных стека: один — только для адресов возврата, другой — только для временных переменных.
Так обратная совместимость полная.
То, что привязка аппаратная, важно только для CALL / RET (или как там в x86 эти команды назвываются)
(Да, чуть-чуть медлененне работать будет, на пол-процента, но кого это волнует, на гигагерцовых частотах-то?)
А кто мешает разработчкам процессоров тоже подтянуться?
Как устроены дыры в безопасности: переполнение буфера