JMP
作者:Vesper Vei
1 分钟阅读
目录
JMP(jmp)
基本作用
JMP 无条件跳转到指定地址(立即数、寄存器、内存地址均可)。
改变 RIP 流向,是控制流指令中最核心的指令之一。
指令执行过程
- 将目标地址写入 RIP
- 无条件转向新位置执行
- 不修改 EFLAGS
指令格式
jmp rel32 ; 相对跳转jmp rax ; 寄存器间接跳转jmp [rax] ; 内存间接跳转jmp qword ptr [...] ; 绝对跳转行为特性
- 不会返回
- 不影响寄存器(除 RIP—>指令寄存器)
- 用于控制流转移、尾调用优化
- 在 PWN 中大量用于:
- 劫持控制流(ret2text / ret2csu / ret2shellcode)
- ROP gadgets 中的跳转
- 覆盖函数指针进行 exploit
常见用途
- 实现循环、分支
- 跳表、状态机
- Hook/patch 控制流
- ROP chain 构造
- 利用栈溢出劫持执行流进入 shellcode