我正在尝试了解如何隔离和保护程序。
当进程需要在内存页上使用 PROT_WRITE |PROT_EXEC
时,是否存在任何有效的情况?这可以避免吗?
这似乎与 NX 位或 W^X 或 DEP 试图实现的目标相反。
Libre office 似乎正在使用它并在加固的 Linux 上制造了很多麻烦。
最佳答案
只有当您编写相当于加载程序的内容时才需要这种情况——它会使用自己的机制按需引入额外的代码——或者 JIT 编译器,或者非常 很少有其他合法情况允许应用程序修改自己的代码。即使在那里,通常做的是控制这些权限的持续时间,让页面仅在加载时可写,然后将其切换为仅可执行,这样就无法在此后踩踏。
我不明白为什么 Libre Office 会认为它需要此功能。您必须在其开发人员社区中解决这个问题。
关于linux - 进程何时需要同时具有写入和执行权限的内存页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093789/