selph
selph
发布于 2022-03-21 / 333 阅读
0
0

《xchg rax,rax》片段分析0x1b--一种地址跳转

前言

本次是该系列的的第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

评论