-
-
jmp跟popad的疑问
-
发表于:
2010-9-18 07:07
4944
-
首先感谢论坛朋友的帮助,俺也会基本的call了,也会在call之后jmp回原始地址了:)
现在还有个问题,jmp回原地址后,好像执行到最后堆栈不平衡了,
下面是我在vc里call自己函数的代码(vc不用pushad/popad好像也可以正常跳回去)
s是我一个char*指针,赋值给ecx后,我就jmp出去到father_address+8的位置,没问题!
如果jmp在ren8之前,那这个子函数不是不会自动平衡堆栈了?(retn8没机会执行)
__asm {
mov ecx, dword ptr[s];
mov ebx,dword ptr[father_address];
add ebx,8;
jmp ebx;
retn 8;
}
再问下,jmp那里能不能先申请个局部变量,比如[esp-4],然后把father_address+8赋值给[esp-4]再jmp?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课