所謂的 W^X (Write XOR Execute) policy 是指不要讓記憶體同時是 PROT_WRITE 跟 PROT_EXEC,所以正確的配置方式是(參見 mmap)
- 先設定成
PROT_READ | PROT_WRITE - 等寫完指令再改成
PROT_READ | PROT_EXEC(像是用mprotecthttps://man7.org/linux/man-pages/man2/mprotect.2.html)
然後才能真的執行這段程式。
所謂的 W^X (Write XOR Execute) policy 是指不要讓記憶體同時是 PROT_WRITE 跟 PROT_EXEC,所以正確的配置方式是(參見 mmap)
PROT_READ | PROT_WRITEPROT_READ | PROT_EXEC(像是用 mprotect https://man7.org/linux/man-pages/man2/mprotect.2.html)然後才能真的執行這段程式。