首页
社区
课程
招聘
[求助]关于堆栈的问题。困惑中,请大家帮忙解决。谢谢!
发表于: 2007-3-9 15:15 3769

[求助]关于堆栈的问题。困惑中,请大家帮忙解决。谢谢!

2007-3-9 15:15
3769
我在学汇编的时间,常常看类似如下的代码:

00476BE1  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX

-----------------------------------------
问:
1、上面EAX的值如何赋给[EBP-4]这个地址?
2、假设EAX的值是01601600,那它等于什么?

好像,堆栈是先入后出的。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
应该是把EAX的值,付给SS段地址 + [ebp-4] 的地址值吧。
我也是刚学的。
2007-3-9 15:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
高位应该为0吧!

我也是刚学的
2007-3-9 21:27
0
雪    币: 236
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
还有更佳的答案吗?
2007-3-10 15:00
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
你要看前面一句是啥,即EBP的值很关键。
你可以在OD里键入这2句汇编跑一下就明白了,键入后,右键 “此处新建EIP”开始运行你的指令。
2007-3-10 16:05
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
按一般的堆栈来说DWORD PTR SS:[EBP-4]这里面一般是保存局部变量,关键是你的上面的汇编代码是什么呀???????
2007-3-10 20:59
0
雪    币: 236
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
首先谢谢大家积极帮我解决问题.

此问题,我已通过OD实验,的确能实现被赋值.

但,实在想不明白,堆栈段是先进后出的,而它却能“被赋值”?!!!
2007-3-11 11:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
后进先出和先进后出是指用push和pop指令说的,用这两条指令会修改sp的值,而不用pop指令来取堆栈段中某个存储单元的值时,是不会对sp的进行修改的!!
2007-3-11 11:26
0
雪    币: 236
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢!终于明白了。
2007-3-11 20:43
0
游客
登录 | 注册 方可回帖
返回
//