Era*_*man 5 windows winapi virtual-memory
Windows 提供了 2 个不同的内存保护常量(例如VirtualProtect的第三个参数),它们的行为似乎相似:PAGE_EXECUTE
和PAGE_EXECUTE_READ
。
它似乎PAGE_EXECUTE
应该是仅执行权限(没有读取)。但是,没有读取的执行权限没有多大意义,因为 CPU 需要先从内存中读取指令,然后才能解码和执行它们。此外,我在这里读到确实PAGE_EXECUTE
内存也允许从中读取。
那么.. 为什么有两个不同的常量,它们之间有什么区别?为什么我应该更喜欢一个?