问题由来
在做ctf pwn题的过程中,一些复杂的题目可能需要借助调试工具进行本地调试。在没装pwndbg之前,使用gdb没法正常的调试。gdb attach的进程不知道为什么跟要调试的进程不是一个。虽然我在开始处下了断点,但是程序还是自顾自地运行。我在安装了pwndbg之后,执行到gdb.attach()后一直在waiting for debugger。随后找到一种解决方法,就是使用tmux终端。
下面记录一下我使用的模板,方便之后做pwn题。
python2环境下的模板
#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)
利用这个模板,之后写代码进行交互,在终端使用tmux开启tmux模式,就可以利用写好的脚本进行本地的调试了。
tmux的一些基本操作
参考链接:http://www.ruanyifeng.com/blog/2019/10/tmux.html