前言
本次是该系列的的第0x1b篇,本篇介绍了一种地址跳转的方法,常用于shellcode。
实验环境:
- Windows10 + VS2022 + masm
0x1b
代码片段链接:xorpd | xchg rax,rax 0x1b
push rax
ret
代码分析
ret指令相当于pop rip,把栈顶的值赋值给rip
前面的push rax,rax里应该是一个可执行的地址,通过ret来进行跳转
测试代码:
.code
main proc
lea rax, Selend
push rax
ret
db "hello world",0
Selend:
ret
main ENDP
END