ret2shellcode

call指令

无论是x86还是x86_64
call指令的基本功能都是一致的

  1. 保存返回地址
    将下一条指令的地址(返回地址)压入栈中。
  2. 跳转到子程序
    call指令将程序的控制权转移到指定的目标地址

编写shellcode

pwntools生成

1
shellcode = asm(shellcraft.sh())
1
shellcode = asm(shellcraft.cat('flag'))

shellcraft.sh():
生成获取/bin/sh的汇编指令
asm():
将汇编指令汇编成字节码


手写

ascii码转16进制在线工具:
ASCII、十六进制、二进制、十进制、Base64转换器
Online Assembler and Disassembler

to learn:
★pwn 手写Shellcode保姆级教程★_shellcode编写教程-CSDN博客


栈地址是每时每刻都在变的
且栈地址是不可事先知道的


在做ctfshow的pwn60的时候
遇到了ida测量栈底距离出错的情况


ret2shellcode
http://example.com/2025/03/05/ret2shellcode/
作者
yvyvSunlight
发布于
2025年3月5日
许可协议