- UID
- 20912
注册时间2006-8-25
阅读权限30
最后登录1970-1-1
龙战于野

该用户从未签到
|
发表于 2007-5-19 10:56:15
|
显示全部楼层
你收集的资料当中
push Var3
push Var2
push Var1
call SubRouting
add esp,12
在反汇编里是
push Var3
push Var2
push Var1
call SubRouting
add esp,0C
++++++++++++++++++++++
这个add esp,0c就是用来平栈用的
压了三个进去,一个都没有弹出来,所以esp没变,
要还原,所以add esp,0c
有此call自己平栈,那是因为弹出来了
像这样的call就不需要平栈,因为他弹出来了!
push a
push b
push c
call xxx1
jmp *****不用平栈**
*****
@xxx1:
pop eax
pop ebx
pop ecx
add eax,ebx
sub eax,ecx
ret
这样的就要平栈,因为他没有弹出来,esp一直没变
push a
push b
push c
call xxx1
add esp,0c平栈
*****
@xxx1:
mov eax,dword ptr[esp]
mov ebx,dword ptr[esp+4]
mov ecx,dword ptr[esp+8]
add eax,ebx
sub eax,ecx
ret
慢慢研究吧,谁一下子也不能完全接收过来的,有的是时间!/:09 |
|