我试图了解如何隔离和保护程序。
进程是否需要在内存页上PROT_WRITE |PROT_EXEC
,是否存在任何有效情况?这能避免吗?
这似乎与NX位或W^X或DEP试图实现的目标相反。
Libre Office似乎正在使用它,并在硬化的Linux上制造了很多麻烦。
https://github.com/nning/linux-pax-flags/pull/3
编写相当于加载器的东西时,才需要这种情况 - 它将使用自己的机制按需引入额外的代码 - 或JIT编译器,或应允许应用程序修改其自己的代码的极少数其他合法情况之一。即使在那里,通常做的是控制这些权限的持续时间,让页面仅在加载时可写,然后将其切换为仅可执行,以便此后无法踩踏。
我不明白为什么Libre Office可能认为它需要这个功能。你必须与它的开发者社区讨论这个问题。