PWN相关

  • sp和bp寻址有区别

  • 平衡栈问题

    ret2libcexp

#coding:utf8
from pwn import *

context.log_level = 'debug'
context.terminal = ['tmux', 'splitw', '-h'] #pwndbg适配该终端,加上这句话,我们就可以在一个终端进行分屏调试,分屏的切换一类的操作还需要查看一下tmux如何使用

ip = ''
port = 0
process_name = ''
if args.G:           #还没搞清楚是什么原理,但是用法就是在参数列表中加个G就可以进入本地调试的分支
    sh = process(process_name)
    addr=''
    gdb.attach(sh, "b *" + addr)  
else:
    sh = remote(ip,port)

关于`close'

  • exp脚本里面写payload顺序不能错
  • system和call _system以及16字节对齐link
  • patchelf --set-interpreter ld* file ./pwn
  • patchelf --replace-needed old libc* file new libc* file ./pwn
  • set debug-file-directory ./.debug/

recv注意事项:
link

栈迁移:link
link

pwndbg打断点 开启pie的使用 gdb $rebase(0x)

signin绕过tail ./*

mp_.tcache_bins怎么找,哈哈,search -8 堆基址,
找到在libc.so上的地址,该地址加8就是mp_.tcache_bins的地址