RET
作者:Vesper Vei
1 分钟阅读
目录
RET(ret)
基本作用
RET 从栈顶弹出返回地址并跳转,是函数执行结束后的退出指令。 等效行为:
pop rip带立即数版本:
ret 8等效于:
pop ripadd rsp, 8用于调用约定清理参数。
指令执行过程
- 从 RSP 读取返回地址,赋给 RIP
- RSP 增加 8(x64)
指令格式
retret imm16行为特性
-
完全依赖栈内容决定跳转位置
-
不修改 EFLAGS
-
是 ROP 攻击的核心跳板
-
若返回地址被覆盖,程序执行流被劫持
常见用途
- 函数返回
- ROP chain 中的 gadgets
- 构造 ret2libc、ret2plt 等攻击模式
- 在 shellcode 中实现轻量跳转