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