1
我正試圖瞭解程序如何隔離和保護。何時進程需要同時具有寫入權限和執行權限的內存頁面
當存儲頁面上的進程需要PROT_WRITE |PROT_EXEC
時是否有任何有效的情況?這可以避免嗎?
這似乎與NX位或W^X或DEP試圖實現的事情相反。
自由職業似乎正在使用這一點,並在硬化的linux上創建了很多麻煩。
https://github.com/nning/linux-pax-flags/pull/3
我正試圖瞭解程序如何隔離和保護。何時進程需要同時具有寫入權限和執行權限的內存頁面
當存儲頁面上的進程需要PROT_WRITE |PROT_EXEC
時是否有任何有效的情況?這可以避免嗎?
這似乎與NX位或W^X或DEP試圖實現的事情相反。
自由職業似乎正在使用這一點,並在硬化的linux上創建了很多麻煩。
https://github.com/nning/linux-pax-flags/pull/3
這種情況時,你正在寫一個相當於一個裝載時,才需要 - 這會使用自己的機制帶來的額外代碼需求 - 或JIT編譯器,或的一個非常有很少有其他合法的情況下應該允許應用程序修改自己的代碼。即使在那裏,通常做的是控制這些權限的持續時間,使頁面在被加載時只能被寫入,然後將其切換爲僅可執行,因此不能在其後被踩下。
我不知道爲什麼Libre Office可能會認爲它需要這種功能。你必須把它與開發者社區合作。
可能用於加載插件或運行它的宏東西或東西......但我同意可能有更好的方法來做任何事情,權限是必需的...... – twalberg