Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  1. При сборке ПО не использовать параметр компиляции -z execstack. Этот параметр, передаваемый компоновщику. означает, что инструкции, расположенные в стеке, могут быть выполнены.
  2. Использовать при сборке программ опцию --no-trampolines, исключающий обработку вложенных функция с помощью создания исполняемого кода в стеке.
  3. Ошибка "cannot enable executable stack as shared object requires: Permission denied" возникает при попытке установки флага разрешения исполнения на область памяти, т.е. при попытке исполнения системного вызова mprotect(). Для предотвращения возникновения ошибки следует исключить такие вызовы. Для выявления попыток установки флага исполнения (выявления обращений к системному вызову mprotect()) использовать инструмент strace.