能力值:
( LV9,RANK:380 )
|
-
-
2 楼
自己写个程序,OD跟一下不就知道了么?
|
能力值:
( LV9,RANK:850 )
|
-
-
3 楼
看你定义了几个局部变量……
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
esp?ebp?
push ebp
mov ebp,esp
...
还是OD一下看看吧。
|
能力值:
( 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,中还有参数.
|
能力值:
( 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]
|
|
|