如果虚拟内存页是可执行的,是否意味着它是可读的?
如果我在 x86 系统上创建了一个虚拟内存页面,并将页面保护设置为仅可执行,是否意味着该页面也是可读的?
If I created a virtual memory page on a x86 system with the page protection set to only executable, would it imply that the page is also readable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设 IA-32e 模式:是的,页表条目没有禁止读取的位,仅禁止写入(位 1,R/W)。假设位 2(U/S,用户/监管)允许访问,页面始终可读。位 63,EXB 是执行禁止位。这就是保护标志。 Intel 处理器手册中的第 3.10.3 章。
Assuming IA-32e mode: yes, a page table entry has no bit that inhibits reading, only writing (bit 1, R/W). Pages are always readable, assuming bit 2 (U/S, User/Supervisory) allows access. Bit 63, EXB is the Execute Inhibit bit. That's it for protection flags. Chapter 3.10.3 in the Intel processor manual.
我认为 x86 没有单独的可执行标志,所有可读页面都是可执行的。所以我想这意味着答案是“是”(即使逻辑是倒退的)。
I think the x86 doesn't have a seperate executable flag, all readable pages are executable. So I guess that means the answer is "yes" (even if the logic is backwards).