首页
社区
课程
招聘
OD中内存窗口的各个属性都是什么意思
发表于: 2011-7-12 15:27 6387

OD中内存窗口的各个属性都是什么意思

2011-7-12 15:27
6387
哪位大侠能详细解释一下图中每一列都是什么意思?
尤其是那个“访问”和“初始访问”有什么区别?有什么办法在编译exe的时候就改变默认的访问属性吗?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1121
活跃值: (752)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
2
R代表Read,W代表Write,E代表Execute。分别是可读、可写、可执行。
编译时,一般是代码段可读可执行不可写,数据段可读可写不可执行。
如果在不更改页面保护属性的情况下,尝试更改代码段内容,程序会产生异常。
程序执行时,可以利用VirtualProtect更改页面保护属性。
至于编译时如何设置区段属性,小弟才疏学浅,不是很了解。
2011-7-12 23:23
0
雪    币: 73
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最想知道的是最后两列的意义,感觉访问和初始访问两列的内容都和PE区段属性对不上啊~

关于“有什么办法在编译exe的时候就改变默认的访问属性吗?”这个问题,昨天在编程区问到了答案http://bbs.pediy.com/showthread.php?t=137029

楼上给出的VirtualProtect方法也让我学到了新的东西,谢谢。
2011-7-13 14:17
0
雪    币: 78
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
地址:每个内存区域的起始位置。请注意如何将这些地址总是与“000”结束,因为他们都是对齐页边界(在Windows 0x1000字节)。
大小:该区域的大小。请注意如何将这些也总是与“000”结束,因为每个区域是0x1000字节倍数大小的页面。
物主:该区域的“所有者”的描述,它从何而来。这可以用来确定一个模块(module)。
区段:如果此区域加载的是PE的一个PE节。显示节名
包含:本区域的内容描述。这可以用来确定一个块。
类型: 说明是映射(MAP:主要是一些公用DLL,系统模块等),镜像(IMAGE,程序或DLL等模块自身节段加载),和预分配(priv:主要是堆栈和操作系统所初始化的内存段)
访问:进程运行的代码,在本区域的访问类型的标志。这包括读R,写W和执行E。请注意,页面都没有W和E,这意味着可以执行就不能修改内存,并可以修改就不能执行。这就是所谓的数据执行保护(DEP)。 这是被进程和系统修改后的当前结果。
初始访问:系统在程序加载前,以0初始化虚拟内存页时所规定的内存访问标志,比如准备把PE节段镜像(IMAGE)加载入内存时,会设置为读写执行。
2011-7-13 17:04
0
雪    币: 73
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
长知识了~ 谢谢举剑问天。
2011-7-14 11:09
0
游客
登录 | 注册 方可回帖
返回
//