OllyDbg---call和ret指令
目录
call和ret
call和ret
call指令
- cal指令是转移到指定的子程序处,后面紧跟的操作数就是给定的地址。
- 例如,call 401362表示转移到地址401362处,调用401362处的子程序,当子程序调用完毕之后就返回到call指令的下一条语句处。
- 如果想要跟踪子程序内部,可以按F7跟进;
- 如果只是想先看看子程序里面的内容再决定要不要跟踪,可以右键follow;
- 如果不想跟踪子程序内部,按下F8键,继续执行call指令的下一条语句。
ret指令
-
如果call跟进的话,ret就会返回call指令的下一条语句处的地址。
-
当执行到ret指令时,栈顶存放的一般是子程序的返回地址。
-
ret指令不仅可以用于子程序的返回,比如
复制
PUSH 401256 RET 将401256压入到堆栈中,ret指令会将401256当做子程序的返回地址, 但其实它并不是返回地址,执行ret指令后依然可以跳转到401256地址处。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步