3 ms·
PaX and W^X use segmentation on x86. x86 code segments were by design and definition non-writable--you couldn't write to any region in a code segment unless a w
by wahern 5y ago
PaX and W^X use segmentation on x86. x86 code segments were by design and definition non-writable--you couldn't write to any region in a code segment unless a writable data or stack segment overlapped the same region. This was a deliberate feature of the hardware that happened to go unused in favor of flat memory models in the most popular operating systems.
- knorker 5y agoNo. PaX has both SEGMEXEC and PAGEEXEC. PAGEEXEC does not use segmentation, and works without page-level HW support by using the split data/code TLB. https://en.wikipedia.org/wiki/Executable_space_protection#PaX https://en.wikipedia.org/wiki/Executable_space_protection#Pa... https://pax.grsecurity.net/docs/pageexec.txt https://pax.grsecurity.net/docs/pageexec.txt contrasted with: https://pax.grsecurity.net/docs/segmexec.txt https://pax.grsecurity.net/docs/segmexec.txt