pwndocker环境搭建-半永久化

文章介绍了如何通过安装dockerDesktop,拉取并配置pwndocker来减少MacBookPro(MBP)运行pwn题时的负担。作者详细说明了如何创建和运行pwndocker容器,设置pwndbg在两个终端窗口显示命令和输出,以及如何保存和备份自定义的pwndocker环境,以应对电脑重启后环境丢失的问题。
摘要由CSDN通过智能技术生成

01 安装docker Desktop

  • 此处省略,不会的话,参考文章很多。

02 拉取 pwndocker

  • 此处省略,不会的话,参考文章很多。

03 配置过程

[1] 运行pwndocker

#先新建一个工作目录
mkdir docker_pwn
cd docker_pwn
vim run.sh
#输入
ctf_name=env_pwn #设置你环境文件夹的名字,这里取名为env_pwn
docker run -d \
    -h ${ctf_name} \
    --name ${ctf_name} \
    -v $(pwd)/${ctf_name}:/ctf/work \
    -p 23946:23946 \
    --cap-add=SYS_PTRACE \ #这个一定要加,不然gdb调试不了
    skysider/pwndocker
docker exec -it ${ctf_name} /bin/bash#进入docker环境
  • 这里需要指出的是 -v $(pwd)/${ctf_name}:/ctf/word$(pwd)/${ctf_name}为你物理机器中的文件夹(理解成是共享文件夹),将该文件夹挂载到pwndocker中的/ctf/word下。
    在这里插入图片描述
  • 其中我们在物理机中的env_pwn文件夹中有一个题目集合。
    在这里插入图片描述
#保存退出
chmod +x run.sh
./run.sh
#此时你就进入到了pwndocker环境

在这里插入图片描述

#查看docker工作目录是否存在题目文件夹
ls

在这里插入图片描述

  • 此时我们就不需要在docker cp 了,直接在物理机做修改,docker里面跟着变。

[2] pwndbg实现命令和输出分别在两个终端窗口

  • 如果我们想要实现如下效果该怎么设置呢?
    在这里插入图片描述
  • 因为这样真的很方便。

  1. 现将你的终端分成两块,mac的话,⌘ + d 垂直分屏。
  2. 分别在两个终端中使用tty命令查看当前终端用于显示连接到当前标准输入的终端设备文件名。
  • 可以看到我打开的第一个终端默认是0,第二个是1
    在这里插入图片描述
  1. 添加 set context-output /dev/pts/1 后保存退出即可

在这里插入图片描述

$ vim .gdbinit
#末尾输入
set context-output /dev/pts/1
#保存退出

在这里插入图片描述

  • 此时就可以分屏显示了。

[3] 半永久化设置

  • 由于偶尔电脑需要重启,这样你的docker容器内的东西都会消失,其中包括新添加的文件,又或者其它你安装的程序以及一些配置的修改都会被清空。所以,当你完全配置好你的pwndocker环境后需要保存修改后的环境,步骤如下,再下次重新启动的时候直接启动新环境(注意被忘了挂载env_pwn文件夹)。
  1. docker ps 查看正在运行的容器.
    在这里插入图片描述
  2. docker commit 27377e0379b7 my_new_pwndocker:v1.0 提交你刚才修改的镜像,新的镜像名称为my_new_pwndocker,版本为v1.0,期间容器不能停止
    在这里插入图片描述
  3. 最后保存新的容器镜像
    docker save #ID or #Name
$ docker save -o my_new_pwndocker.tar my_new_pwndocke:v1.0
#或者
$ docker images
REPOSITORY           TAG       IMAGE ID       CREATED             SIZE
my_new_pwndocker     v1.0      1b27f8144b3a   About an hour ago   4.79GB
skysider/pwndocker   latest    c8efe40b3b33   4 months ago        4.79GB 
$ docker save -o my_new_pwndocker.tar 1b27f8144b3a

在这里插入图片描述

  • 这里是备份了一份,后续可以用 docker load进行读取。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值