首页
社区
课程
招聘
[旧帖] [求助]push eax 原因 0.00雪花
发表于: 2009-3-9 22:03 5895

[旧帖] [求助]push eax 原因 0.00雪花

2009-3-9 22:03
5895
有一个代码段:

lea eax,[ebp+var_8]
push eax

lea ebx,[ebp+var_10]
push ebx

lea eax,[ebp+var_0C]
push eax

请教前面刚进行push eax,后面又一次push eax, 是不是把第一次的eax给覆盖了?
为什么要这样?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
[QUOTE=;]...[/QUOTE]
这个是压栈,在后面的lea eax,[ebp+var_0C] 时,eax已经变化了
2009-3-9 22:17
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
3
|   |
|eax| <- ebp+var_0C
|---|
|ebx| <- ebp+var_10
|---|
|eax| <- ebp+var_8
+---+

那里有被覆盖?
致于为什么要这样我就不知道了, 可能你以后就知道了吧.
2009-3-9 22:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好象HOOK时的代理函数常做这种动作
2009-3-9 22:30
0
雪    币: 72
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
明白一些了,多谢!
以前一直以为push eax就是eax中保存那个值,然后改变了eax也就改变了保存的值。基础东西没搞明白。
2009-3-9 22:35
0
雪    币: 235
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
函数参数压入栈中,否则就那么个几个寄存器,要是函数参数超过4岂不是彻底玩完了。
2009-3-10 12:23
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
可能是压进去被用了(比如api),后面再压个进去。
2009-3-10 12:37
0
雪    币: 203
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
没被覆盖  SP-2
2009-3-10 17:25
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
9
这是push又不是pop
2009-3-10 18:08
0
游客
登录 | 注册 方可回帖
返回
//