【发布时间】:2013-10-29 11:08:51
【问题描述】:
这是来自英特尔架构手册的图。 在 x86 32 位页表条目中,位在哪里 哪个表示页面是否可执行?
如果它不在这里,操作系统如何为 exec 设置内存权限? 有 mmap 之类的功能吗?
【问题讨论】:
标签: linux operating-system paging
这是来自英特尔架构手册的图。 在 x86 32 位页表条目中,位在哪里 哪个表示页面是否可执行?
如果它不在这里,操作系统如何为 exec 设置内存权限? 有 mmap 之类的功能吗?
【问题讨论】:
标签: linux operating-system paging
AFAIK,如果页面可读,则页面是可执行的,因此它们都是可执行的。但是,您在这里可能会想到的是,有些页面设置了非执行位。嗯,这是一个软件破解,从内核完成。引入这种技术是为了避免基于 stackoverflow 的攻击,方法是使特定页面(vm 区域)不可执行。
【讨论】: