首页
社区
课程
招聘
[求助]在汇编函数中的 mov dword ptr [esp], 0
发表于: 2007-6-26 17:00 8370

[求助]在汇编函数中的 mov dword ptr [esp], 0

2007-6-26 17:00
8370
在汇编函数中的  mov     dword ptr [esp], 0

这个[esp]
是指向哪个参数,第一个参数不是 [esp+4] 么,看到有些资料又说第一个参数是 [esp+8]

到底是哪一个都搞混了

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
2
自己写个程序,OD跟一下不就知道了么?
2007-6-26 17:13
0
雪    币: 2899
活跃值: (1753)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
看你定义了几个局部变量……
2007-6-26 20:41
0
雪    币: 1259
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stu
4
esp?ebp?

push ebp
mov ebp,esp
...

还是OD一下看看吧。
2007-6-26 20:58
0
雪    币: 414
活跃值: (531)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=smartqiu;327907]在汇编函数中的  mov     dword ptr [esp], 0

这个[esp]
是指向哪个参数,第一个参数不是 [esp+4] 么,看到有些资料又说第一个参数是 [esp+8]

到底是哪一个都搞混了[/QUOTE]

对于一个函数或过程来说,[ESP]中的内容是调用这个函数或过程的返回地址
mov dword ptr [esp],0  功能就将返回的地址清掉了,程序无法再返回去了.
说[esp+4] 是第一个参数是没有错的.

[ESP]  返回地址
[ESP+4]  一参
[esp+8]  二参
以下同

但也有不同,再参数压入栈的模式,  一般有C pascal等的方式
我知道的是pascal中 堆栈是一部分参数,在EAX,EDX,中还有参数.
2007-6-27 00:30
0
雪    币: 222
活跃值: (69)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=nig;328098]对于一个函数或过程来说,[ESP]中的内容是调用这个函数或过程的返回地址
mov dword ptr [esp],0  功能就将返回的地址清掉了,程序无法再返回去了.
[/QUOTE]

我是跟一个程序里看到的,它那个函数是这样开始的
004F72F0   .  51            push    ecx                              
004F72F1   .  C74424 00 000>mov     dword ptr [esp], 0
004F72F9   .  E8 3273FBFF   call    004AE630
004F72FE   .  8D4C24 00     lea     ecx, dword ptr [esp]

还有:
004F7320   .  51            push    ecx                              
004F7321   .  C74424 00 010>mov     dword ptr [esp], 1
004F7329   .  E8 0273FBFF   call    004AE630
004F732E   .  8D4C24 00     lea     ecx, dword ptr [esp]
2007-6-27 03:22
0
游客
登录 | 注册 方可回帖
返回
//