CALL
作者:Vesper Vei
1 分钟阅读
目录
CALL(call)
基本作用
CALL 用于调用函数,以跳转到目标位置执行代码,同时保存返回地址,以便函数结束后返回到调用点。
指令执行过程
-
将当前指令下一条指令的地址(返回地址)压入栈中
-
RIP 设置为调用目标地址
-
开始执行新的代码路径
等效行为(x64):
push rip_nextjmp target指令格式
call rel32 ; 相对调用(最常见)
call rax ; 寄存器间接调用
call [rax] ; 内存间接调用
call qword ptr [...] ; 绝对调用行为特性
-
修改 RSP(压入返回地址)
-
修改 RIP(跳转)
-
不修改 EFLAGS
-
栈结构变化对 PWN 有极大影响
-
是构造 ROP chain、劫持控制流的重要节点
常见用途
-
调用函数
-
动态解析函数地址(通过 call/pop 技巧)
-
控制流混淆(call 进入中间 Stub)
-
溢出利用中改变返回地址