首页
社区
课程
招聘
[求助]OllyDgb中的地址问题
发表于: 2006-8-25 17:09 4621

[求助]OllyDgb中的地址问题

2006-8-25 17:09
4621
大家好,我是新来的,第一次发帖。看帖的时候,很多自称菜鸟级别的朋友发的帖子像天书,让我觉得我这个水平只能称为“小虫子”级别了,哈哈。
下面是我的问题,希望高手不吝赐教。
汇编教材中有关地址的论述是:物理地址=段地址*4+偏移地址,比如数据段中某个单元的地址就是(DS)*4+offset。
1.实际调试程序的时候好像不是这样的,在OllyDbg中DS、SS的内容都是0023,ESP是0012F5D8,书上不是说SS:SP才是栈顶的绝对地址吗?但是堆栈区的绝对地址就是ESP 0012F5D8。CS:EIP与左边的反汇编窗口的地址也不对,这是为什么呢?
2.Tutorial2001中的虚拟地址、缺省基址、相对虚拟地址、文件地址等还是不清楚,请问能说明得详细一点或者举个例子具体说明一下吗?
谢谢关心帮助我们这些新手的高人们。

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
首先说明一下,我也是“小虫子”饿,说的不对还望海涵啊
物理地址=段地址*4+偏移地址 是在DOS中或者在x86的虚拟模式中才适用的,OllyDbg调试的是标准windows程序,运行在保护模式下,使用的地址是一个4G大小的地址空间;SS和DS等段寄存器在这时有别的用途,我们不用关心他们的值。
此时OllyDbg中显示的地址即为绝对地址,但记住,不一定是物理地址!!!

至于为什么不一定是物理地址,你把第二个问题搞懂了也就明白了,我也不是太明白,请高手来解决撒
2006-8-26 06:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上的朋友很谦虚哈。
我现在大概知道了Win32程序都会有一个4G的逻辑地址空间,Windows的保护模式应该就是指存储保护吧,段页式虚拟存储器从逻辑地址到实际地址的转换以及存储保护上课的时候也讲过,但觉得很难与实际中的程序套起来。SS、DS等段寄存器的作用到底是什么呢?还望明示。
第2个问题还要请知道的朋友赐教了。
2006-8-27 00:40
0
游客
登录 | 注册 方可回帖
返回
//