首页
社区
课程
招聘
[求助]有关于内存概念的问题
发表于: 2009-5-14 22:28 4691

[求助]有关于内存概念的问题

2009-5-14 22:28
4691
书中11页有谈及到windows的运行机制和内存的关系,在此有几个问题想请教下。。。

1,每个进程可有从00000000h~ffffffffh之间任何一个值,此时不区分代码段和数据段,那为什么OD中内存窗口还是有分为代码段,数据段等呢?

2,如果说OD内存窗口中的不是虚拟内存,而是物理内存,那为什么开2个OD在同一地址例如“00401000”处还可以有2个程序的代码段呢

3,一般的2次断点在code段下断后为什么执行的代码地址不是00401000?

4,我们平时在任务管理器中看到的内存占用是物理内存还是虚拟内存呢

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
建议楼主参考一下80386的内存分页机制的相关资料,GDT(全局描述符表)、LDT(局部描述符表)的相关概念。
2009-5-16 11:21
0
雪    币: 221
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
汇编学了一个月了,有几个关键性的问题你要搞明白一下:
1.win下不允许程序直接访问硬件资源,其中就包括物理内存,物理内存的访问管理一般通过虚拟内存管理器;
2.od是ring3级调试软件,只能破解大多数软件,其无法显示物理内存,所以用调试软件看到的地址是虚拟地址;od无法与softice相比(其可以破解一切软件);
3.分段的概念是根据cpu而提出的,段的划分有利于cpu更好的管理内存,进程内的分段是假想的分段;
4.指令执行是线性地址(只要其对应的数据,指令等资源已装入物理内存中,不管其放在物理地址中哪里,请注意我们不需要关注数据,指令的物理地址在哪(映射机制太复杂),因为指令执行的是线性地址)cpu只跟线性地址打交道;
以上是个人的理解,希望有所帮到
2009-5-17 21:26
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢你的回答,起码我现在清楚了OD内存窗口显示的不是物理内寸,只是第3个问题还是有点不清楚
2009-5-19 15:40
0
雪    币: 221
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
3,一般的2次断点在code段下断后为什么执行的代码地址不是00401000?好像这个问题问的有点不清楚
个人觉得,断点后,一般是执行到断点处。或断点后单步走。od有个特点,它不是从基址开始执行的。PE装载器装入PE文件时,还要有一些初始化及其它步骤,od执行的入口是pe文件的初始化处。我记得好像是这样的。
“其实执行的代码地址不是00401000,你大可不必关心的。”PE文件默认image base是可以改变的。
以上个人理解
2009-5-20 08:21
0
游客
登录 | 注册 方可回帖
返回
//