开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2050|回复: 20
收起左侧

[闲聊] 内存保护常量

[复制链接]

结帖率:92% (49/53)
发表于 2023-1-23 22:43:41 | 显示全部楼层 |阅读模式   江西省上饶市
MSDN WinNT.h (内存保护常量) - Win32 apps | Microsoft Learn

  
数据类型名公开备 注
MEMORY_BASIC_INFORMATION 用来存放虚拟地址空间或虚拟页的属性或状态的结构
成员名类 型传址数组备 注
BaseAddress整数型 指向内存块所占的第一个页面基地址(VirtualAlloc 中的 lpAddress类型)
AllocationBase整数型 指向基地址内存块所占的第一块区域基地址,小于等于BaseAddress,也就是说BaseAddress一定包含在AllocationBase分配的范围内
AllocationProtect整数型 这个虚拟页最初申请时的保护方式.(VirtualAlloc 中的 flProtect类型)
RegionSize整数型 虚拟页的空间大小
State整数型 当前虚拟页的状态
Protect整数型 虚拟页现在的保护方式.(VirtualAlloc 中的 flProtect类型)
lType整数型 当前虚拟页在区域中的类型



AllocationProtect


常量/值
说明
PAGE_EXECUTE
0x10
启用对已提交页面区域的执行访问。 尝试写入已提交的区域会导致访问冲突。
[color=var(--theme-hyperlink)]CreateFileMapping 函数不支持此标志。
PAGE_EXECUTE_READ
0x20
启用对页面已提交区域的执行或只读访问。 尝试写入已提交的区域会导致访问冲突。
Windows Server 2003 和 Windows XP:[color=var(--theme-hyperlink)]CreateFileMapping 函数不支持此属性,直到具有 SP2 的 Windows XP 和具有 SP1 的 Windows Server 2003。
PAGE_EXECUTE_READWRITE
0x40
启用对页面已提交区域的执行、只读或读/写访问权限。
Windows Server 2003 和 Windows XP:[color=var(--theme-hyperlink)]CreateFileMapping 函数不支持此属性,直到具有 SP2 的 Windows XP 和具有 SP1 的 Windows Server 2003。
PAGE_EXECUTE_WRITECOPY
0x80
启用对文件映射对象的映射视图执行、只读或复制写入访问。 尝试写入到提交的写入页上的副本会导致为进程创建页面的专用副本。 专用页标记为 PAGE_EXECUTE_READWRITE,并将更改写入新页面。
[color=var(--theme-hyperlink)]VirtualAlloc 或 VirtualAllocEx 函数不支持此标志[color=var(--theme-hyperlink)]。 Windows Vista、Windows Server 2003 和 Windows XP: 在具有 SP1 和 Windows Server 2008 的 Windows Vista 之前, [color=var(--theme-hyperlink)]CreateFileMapping 函数不支持此属性。

PAGE_NOACCESS
0x01
禁用对页面已提交区域的所有访问。 尝试读取、写入或执行已提交的区域会导致访问冲突。
[color=var(--theme-hyperlink)]CreateFileMapping 函数不支持此标志。
PAGE_READONLY
0x02
启用对页面已提交区域的只读访问。 尝试写入已提交的区域会导致访问冲突。 如果启用了 [color=var(--theme-hyperlink)]数据执行防护 ,则尝试在提交的区域中执行代码会导致访问冲突。
PAGE_READWRITE
0x04
启用对已提交页面区域的只读或读/写访问权限。 如果启用了 [color=var(--theme-hyperlink)]数据执行防护 ,则尝试在提交的区域中执行代码会导致访问冲突。
PAGE_WRITECOPY
0x08
启用对文件映射对象的映射视图的只读或复制写入访问权限。 尝试写入到提交的写入页上的副本会导致为进程创建页面的专用副本。 专用页标记为 PAGE_READWRITE,并将更改写入新页面。 如果启用了 [color=var(--theme-hyperlink)]数据执行防护 ,则尝试在提交的区域中执行代码会导致访问冲突。
[color=var(--theme-hyperlink)]VirtualAlloc 或 VirtualAllocEx 函数不支持此标志[color=var(--theme-hyperlink)]
PAGE_TARGETS_INVALID
0x40000000
将页面中的所有位置设置为 CFG 的无效目标。 与任何执行页面保护一起使用,例如 PAGE_EXECUTE、 PAGE_EXECUTE_READ、 PAGE_EXECUTE_READWRITE 和 PAGE_EXECUTE_WRITECOPY。 对这些页面中位置的任何间接调用都将失败 CFG 检查,并且进程将终止。 分配的可执行页的默认行为是标记为 CFG 的有效调用目标。
[color=var(--theme-hyperlink)]VirtualProtect 或 [color=var(--theme-hyperlink)]CreateFileMapping 函数不支持此标志。
PAGE_TARGETS_NO_UPDATE
0x40000000
当 [color=var(--theme-hyperlink)]VirtualProtect 的保护更改时,区域中的页面不会更新其 CFG 信息。 例如,如果使用 PAGE_TARGETS_INVALID分配区域中的页面,则页面保护更改时将保留无效信息。 仅当保护更改为可执行类型(如 PAGE_EXECUTE、 PAGE_EXECUTE_READ、 PAGE_EXECUTE_READWRITE 和 PAGE_EXECUTE_WRITECOPY)时,此标志才有效。 VirtualProtect 保护更改为可执行文件的默认行为是将所有位置标记为 CFG 的有效调用目标。

以下是除上表中提供的选项以外,还可以使用的修饰符(如前所述)。

常量/值
说明
PAGE_GUARD
0x100
区域中的页面将成为保护页。 任何访问防护页的尝试都会导致系统引发 STATUS_GUARD_PAGE_VIOLATION 异常,并关闭防护页状态。 因此,防护页充当一次性访问警报。 有关更多信息,请参见[color=var(--theme-hyperlink)]创建保护页
当访问尝试导致系统关闭保护页面状态时,基础页面保护将接管。
如果在系统服务期间发生防护页异常,则服务通常会返回故障状态指示器。
此值不能与 PAGE_NOACCESS一起使用。
[color=var(--theme-hyperlink)]CreateFileMapping 函数不支持此标志。
PAGE_NOCACHE
0x200
将所有页面设置为不可缓存。 应用程序不应使用此属性,除非设备显式需要时。 将互锁函数与与 SEC_NOCACHE 映射的内存结合使用可能会导致 EXCEPTION_ILLEGAL_INSTRUCTION 异常。
PAGE_NOCACHE标志不能与PAGE_GUARD、PAGE_NOACCESS或PAGE_WRITECOMBINE标志一起使用。
仅当使用 [color=var(--theme-hyperlink)]VirtualAlloc、VirtualAllocEx 或 [color=var(--theme-hyperlink)]VirtualAllocExNuma 函数分配专用内存[color=var(--theme-hyperlink)]时,才能使用PAGE_NOCACHE标志。 若要为共享内存启用非缓存内存访问,请在调用 [color=var(--theme-hyperlink)]CreateFileMapping 函数时指定SEC_NOCACHE标志。
PAGE_WRITECOMBINE
0x400
设置要合并的所有页面。
应用程序不应使用此属性,除非设备显式需要时。 将互锁函数与映射为写入组合的内存会导致 EXCEPTION_ILLEGAL_INSTRUCTION 异常。
不能使用PAGE_NOACCESS、PAGE_GUARD和PAGE_NOCACHE标志指定PAGE_WRITECOMBINE标志。
仅当使用 [color=var(--theme-hyperlink)]VirtualAlloc、VirtualAllocEx 或 [color=var(--theme-hyperlink)]VirtualAllocExNuma 函数分配专用内存[color=var(--theme-hyperlink)]时,才能使用PAGE_WRITECOMBINE标志。 若要为共享内存启用写入组合内存访问,请在调用 [color=var(--theme-hyperlink)]CreateFileMapping 函数时指定SEC_WRITECOMBINE标志。
Windows Server 2003 和 Windows XP: 在 Windows Server 2003 SP1 中使用 SP1 之前,不支持此标志。


本帖被以下淘专辑推荐:

签到天数: 10 天

发表于 2023-5-22 12:48:12 | 显示全部楼层   重庆市重庆市
我也是来领B的
回复 支持 反对

使用道具 举报

结帖率:65% (15/23)

签到天数: 14 天

发表于 2023-5-20 21:28:05 | 显示全部楼层   河南省信阳市
泰库拉
回复 支持 反对

使用道具 举报

发表于 2023-5-20 21:22:23 高大上手机用户 | 显示全部楼层   广东省揭阳市
泰酷啦!!!!!!!!!!
回复 支持 反对

使用道具 举报

结帖率:100% (21/21)

签到天数: 3 天

发表于 2023-1-27 10:21:22 | 显示全部楼层   河北省唐山市

回帖奖励 +2 枚 精币

我是来领B的
回复 支持 反对

使用道具 举报

结帖率:100% (16/16)

签到天数: 3 天

发表于 2023-1-27 00:45:43 | 显示全部楼层   黑龙江省绥化市

回帖奖励 +2 枚 精币

回复 支持 反对

使用道具 举报

发表于 2023-1-26 15:40:15 | 显示全部楼层   广东省梅州市

回帖奖励 +2 枚 精币

看不懂,感觉很牛
回复 支持 反对

使用道具 举报

结帖率:100% (275/276)

签到天数: 10 天

发表于 2023-1-26 13:48:55 | 显示全部楼层   广东省广州市

回帖奖励 +2 枚 精币

6666666666666
回复 支持 反对

使用道具 举报

发表于 2023-1-25 23:18:16 | 显示全部楼层   河北省邢台市

回帖奖励 +2 枚 精币

回复 支持 反对

使用道具 举报

结帖率:67% (12/18)

签到天数: 8 天

发表于 2023-1-25 19:35:37 | 显示全部楼层   广东省茂名市
保护不保护,我不是很清楚,但是币我先领了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表