But this means that you have to decide who is allowed to switch.
VirtualProtect/mprotect aren't privileged calls on any modern OS.
It's how you do JIT on macOS, where W^X is enforced, for example.
VirtualProtect/mprotect aren't privileged calls on any modern OS.
It's how you do JIT on macOS, where W^X is enforced, for example.