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

《xchg rax,rax》片段分析0x1a--一种自定位

前言

本次是该系列的的第0x1a篇,本篇介绍了一种自定位方法,可以定义当前指令的地址,常用于shellcode。


实验环境:

  • Windows10 + VS2022 + masm

0x1a

代码片段链接:xorpd | xchg rax,rax 0x1a

   call     .next
.next:
    pop      rax

代码分析

call指令相当于先jmp然后push rip

配合pop,两条指令连着用,直接可以获得到当前语句的内存地址

测试代码:

.code
main proc
   
   call     next    ; jmp next push rip
next:
   pop      rax     ; pop rax

    ret
main ENDP
END

评论