PWN题——如何利用pwndbg实现本地调试

问题由来

在做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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值