Как отключить NX в Linux
Я изучаю использование переполнения буфера стека, и позже я опубликовал вопрос " Ошибка сегментации Shellcode". о том, что выполнение шеллкода из тестовой программы или при внедрении в уязвимую программу вызывает нарушение сегментации. Теперь я узнал, что это может быть вызвано NX. Когда я ищу это в dmesg, я нашел эту строку:
[ 0.000000] NX (Execute Disable) protection: active
Поэтому мой вопрос - как отключить бит NX в Linux. Я использую Kali Linux 64 bit с ядром 4.18.0.
1 ответ
Решение
Вы можете отключить NX глобально в Linux, загрузившись с noexec=off
в командной строке ядра:
noexec [X86]
On X86-32 available only on PAE configured kernels.
noexec=on: enable non-executable mappings (default)
noexec=off: disable non-executable mappings
noexec32 [X86-64]
This affects only 32-bit executables.
noexec32=on: enable non-executable mappings (default)
read doesn't imply executable mappings
noexec32=off: disable non-executable mappings
read implies executable mappings