Я хорошо знаю, что есть такие ошибки. опции, позволяющие пометить программу как требующую исполняемого стека, который будет учитываться ядром при загрузке двоичного файла. А именно, вы можете создать такой двоичный файл с помощью
Код: Выделить всё
gcc -z execstack -o
Я также хотел бы упомянуть два предыдущих вопроса из сети Stackexchange, касающихся этой темы:
- Первый: относится к системному вызову mprotect, который позволяет вручную переопределить характеристики страниц изнутри программы. К сожалению, для моих целей этот подход неприменим, так как у меня нет такого контроля над программой и я пытаюсь в первую очередь установить возможность выполнения кода.
- Во-вторых one: отмечает, что поведение execstack в Linux действительно менялось некоторое время между версиями ядра, поэтому обходным путем может быть использование старого ядра Linux (возможно, до 5.4.0) с опцией компоновщика -z execstack при компиляции. тот двоичный. К сожалению, сам вопрос (что привело к этому изменению) остается без ответа.
Подробнее здесь: https://stackoverflow.com/questions/792 ... tection-in
Мобильная версия