From : Solar Designer 2:5020/400 16 Apr 01 04:04:12
Subj : [Linux] как запретить исполнение кода в стеке
-------------------------------------------------------------------------------
* Forwarded from area 'RU.LINUX'
From: Solar Designer <solar@cannabis.dataforce.net>
> >> > Вопрос: можно ли сделать это отдельной опцией, или же это завязано с
> >> > неисполняемым стеком и придется выбирать между wine и патчем?
> >> chstk -e на бинарник wine.
> DT> не поможет.
> Все-таки помогло (по крайней мере мне). Я и сам удивился:) Вероятно, chstk -e
> не только исполнение на стеке разрешает, но и трюк с mmap() отменяет.
Да. Из FAQ:
Q: What is chstk.c for?
A: The patch adds an extra flag to ELF and a.out headers, which controls
whether the program will be allowed to execute code on the stack or not,
and chstk.c is what you should use to manage the flag. You might find it
useful if you choose to disable the GCC trampolines autodetection. BTW,
setting the flag also restores the original address shared libraries are
mmap()'ed at, just in case some program depends on that.