有没有办法标记一个页面只能执行而不能读取?(即可以在该页面上执行指令,但没有该可执行页面的读权限。)
我的最终目标是创建一个我可以执行但其他进程无法访问数据的页面。
有没有办法标记一个页面只能执行而不能读取?(即可以在该页面上执行指令,但没有该可执行页面的读权限。)
我的最终目标是创建一个我可以执行但其他进程无法访问数据的页面。
正如在mprotect()
手册页面中提到的那样,这是一个取决于内核和硬件的事情:
PROT_EXEC是否与PROT_READ有不同的影响,取决于架构和内核版本。
在最近的Linux/x86内核上,如果你的CPU支持NX-bit,这些标志肯定是离散的。在其他x86 CPU上,这取决于你的内核是否支持Exec-Shield或另一种类似的NX-bit仿真。