快速解决 Docker 环境中无法打开 gdb 调试窗口以及 tmux 中无法滚动页面内容和无法选中复制的问题

报错内容如下:

pwnlib.exception.PwnlibException: Could not find a terminal binary to use. Set context.terminal to your terminal.

原因在于 pwntools 无法在 Docker 容器默认的终端环境中启动 GDB 所需的“新终端窗口”

解决方法:在脚本头新增如下内容

context(terminal=['tmux', 'split-window', '-h'])

配置 pwnlib 上下文,告诉它使用 tmux 来分割窗口显示 GDB

有三种写法:

配置写法效果说明适用场景
['tmux', 'split-window', '-h']水平分割 (Horizontal Split):在您当前的终端窗口上下创建一个新的 GDB 窗格。这是最常用的方式,因为它能让您同时看到 exploit 脚本的输出和 GDB 状态。最常用。 适合屏幕宽度足够,希望同时监控 GDB 和 Exploit 脚本 I/O 的情况。
['tmux', 'split-window', '-v']垂直分割 (Vertical Split):在您当前的终端窗口左右创建一个新的 GDB 窗格。适合屏幕高度足够,希望同时监控 GDB 和 Exploit 脚本 I/O 的情况。
['tmux', 'new-window']创建新窗口 (New Window):在当前的 tmux 会话中创建一个新的窗口来运行 GDB。您需要使用 tmux 快捷键(通常是 Ctrl+b 然后按数字)来切换 GDB 窗口和 Exploit 脚本窗口。适合屏幕较小,或者您希望 GDB 界面完全独占整个屏幕的情况。

在此之前,确保环境安装好了 tmux

sudo apt update
sudo apt install tmux

新增配置文件:

vim /root/.tmux.conf

插入内容:

set -g mouse on

目的是解决后续无法使用鼠标滚动 tmux 窗格内容的问题

之后启一个 tmux 会话

tmux

在这个里面执行脚本

窗口可以正常滑动内容

如果想要选中复制粘贴,可以按住 shift 键再进行选中

一般这个会默认配置,我们可以强行再设置一下:允许终端的默认选中/复制行为

这个选项在 tmux 3.2 及更高版本中默认是打开的,但手动设置更保险

vim /root/.tmux.conf

新增

set -g set-clipboard on

目的是阻止 tmux 接管鼠标左键拖动行为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

My6n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值