pwn调试环境搭建

这篇具有很好参考价值的文章主要介绍了pwn调试环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用场景

不同的pwn题有不同的环境要求,堆题要求更多,patchelf可以满足一定场景的实现,但终究不如在实际对应的环境中搭建。如何快速搭建一个高效节省资源的环境也是一个不小的问题。

方法

高效节省资源:一个主要调试环境+多个运行环境 =主机+docker容器

步骤

主要调试环境

gdb+pwntools+pwndbg等等,网上这类教程很多,不细说。
多加一点:hyperpwn这个插件也挺好用的,支持gdb结果回溯,不需要再在翻滚轮了具体项目地址
https://github.com/bet4it/hyperpwn

主要的运行环境

针对buuctf中涉及ubuntu16、ubuntu18 ubuntu20三种主要环境,采用docker容器的方式搭建相应环境。
主要命令

sudo docker pull ubuntu:16.04     								# 拉取16.04的镜像
sudo docker images 				 								# 列出镜像
sudo docker rename great_mestorf pwn_ubuntu16					# 重命名镜像
sudo docker run -it ubuntu:16.04
sudo docker start [CONTAINER ID]								# 启动镜像
sudo docker cp 本地文件的路径 container_id:<docker容器内的路径>  	# 向docker传输文件
sudo docker attach  [CONTAINER ID]								# 进入镜像shell
apt install gdbserver											# 在镜像shell中下载gdbserver
apt-get install build-essential									# 在镜像shell中安装一些的运行库
gdbserver 宿主机IP:2345  二进制文件									# 在镜像shell中启动gdbserver
sudo docker commit -p 0fa9c9fce605 pwn_ubunt16_ori 				# 拍摄快照
gdb target remote 容器IP:2345									# 宿主机进行调试

运行效果

docker中运行文件
pwn调试环境搭建
宿主机调试
pwn调试环境搭建
当然也可以在相应的docker里面进行调试。

docker的链接
百度云
链接: https://pan.baidu.com/s/1wkRzwgPN_znicbUUNCo1TQ 提取码: hpq4
含有ubuntu16,有python3.9,gdb11,pwndbg
CSDN
https://download.csdn.net/download/weixin_41748164/87024563
https://download.csdn.net/download/weixin_41748164/87024401
加载相应的docker
docker import - new_hangger_server < hangger_server.tar
备注
ubuntu18和ubuntu20 里面有gdb、gdbserver、pwndbg均可使用
ubuntu16的镜像较大就不再上传

原版的ubuntu16 默认安装的是gdb7,python3.5,这两个在目前的pwndbg均不适用,所以需要自己重新编译python,在用编译好的python编译gdb。在python和gdb的版本都达到要求后,下载pwndbg,不运行setup.sh,直接安装该插件所需要的依赖即可文章来源地址https://www.toymoban.com/news/detail-430276.html

sudo docker pull ubuntu:16.04 
sudo docker run -it --privileged "ubuntu:16.04" /bin/bash
sudo docker start 9e666c6ef836
sudo docker attach 9e666c6ef836
apt-get update
apt-get install build-essential	 texinfo git vim
xz -dk gdb-11.2.tar.xz
xz -dk Python-3.8.15.tar.xz
tar -xvf Python-3.8.15.tar
tar -xvf gdb-11.2.tar.xz

#升级python
sudo apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
cd Python-3.8.15
./configure --prefix=/usr/local/python3
make & make install
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python 
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3   
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip 

# 编译gdb
apt-get install libgmp-dev libncurses5-dev
cd gdb-11.2
mkdir build
cd build
../configure --with-python=/usr/bin/python3 
make && make install

# 安装pwndbg
git clone https://github.com/pwndbg/pwndbg.git
pip install -r requirements.txt
echo "source /root/pwn/pwndbg/gdbinit.py" > ~/.gdbinit

# 解决编码问题
vim  /etc/profile
	export LANG=C.UTF-8 
source /etc/profile

到了这里,关于pwn调试环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DC电源模块不同的尺寸可以适应实际应用场景

    BOSHIDA DC电源模块不同的尺寸可以适应实际应用场景 DC电源模块是现代电子设备的必备部件之一,其可提供稳定的直流电源,保证电子设备正常运行。DC电源模块尺寸的选择直接影响到其适应的应用场景及其性能表现。本文将从尺寸方面分析DC电源模块的适应性,探讨其不同尺

    2024年02月11日
    浏览(48)
  • Spring Boot应用中如何动态指定数据库,实现不同用户不同数据库的场景

    当在 Spring Boot 应用程序中使用Spring Data JPA 进行数据库操作时,配置Schema名称是一种常见的做法。然而,在某些情况下,模式名称需要是动态的,可能会在应用程序运行时发生变化。比如:需要做数据隔离的SaaS应用。 所以,这篇博文将帮助您解决了在 Spring Boot 应用程序中如

    2024年04月26日
    浏览(47)
  • 观察者模式(上):详解各种应用场景下观察者模式的不同实现方式

            从今天起,我们开始学习行为型设计模式。我们知道,创建型设计模式主要解决“对象的创建”问题,结构型设计模式主要解决“类或对象的组合或组装”问题,那行为型设计模式主要解决的就是“ 类或对象之间的交互 ”问题。 原理及应用场景剖析 在对象之间

    2024年02月16日
    浏览(52)
  • 增强现实技术的应用场景:从游戏到教育,探索AR在不同领域的潜力

    增强现实(Augmented Reality,AR)是一种将数字信息与现实世界相结合的技术,使用户能够与现实环境中的物体进行互动。这种技术已经在许多领域得到了广泛应用,包括游戏、教育、医疗、工业等。在本文中,我们将探讨AR在不同领域的潜力,以及它如何为用户带来更好的体验。

    2024年04月15日
    浏览(43)
  • STM32 GPIO的八种工作模式各有特点,适用于不同的应用场景

    学了挺久的单片机老是记不住每种模式的运用场景今天用通义千问总结了一下作为鞭策顺便记录一下 STM32 GPIO的八种工作模式各有特点,适用于不同的应用场景。以下是每种模式的简要描述及其对应的应用场景: 1. **GPIO_Mode_AIN** - **模拟输入**    - **应用场景**: 当GPIO引脚作为

    2024年04月11日
    浏览(81)
  • 模拟.NET应用场景,综合应用反编译、第三方库调试、拦截、一库多版本兼容方案

    免责声明 使用者本人对于传播和利用本公众号提供的信息所造成的任何直接或间接的后果和损失负全部责任。公众号及作者对于这些后果不承担任何责任。如果造成后果,请自行承担责任。谢谢! 大家好,我是沙漠尽头的狼。 本文首发于Dotnet9,结合前面两篇(如何在没有第

    2024年02月08日
    浏览(39)
  • Rust环境搭建以及vscode调试环境配置

    Rust 编译工具:https://www.rust-lang.org/zh-CN/tools/install Visual Studio Code:https://code.visualstudio.com/Download Rust的编译工具依赖C语言的编译工具。如果使用Linux系统,需要安装GCC或clang。如果使用macOS,需要安装Xcode。如果使用Windows系统,需要安装Visual Studio 2013以上的环境以使用MSVC或安装

    2024年02月12日
    浏览(78)
  • IOS 32位调试环境搭建

    一、背景 调试IOS程序经常使用gdb,目前gdb只支持32位程序调试,暂不支持IOS 64位程序调试。IOS 32位程序使用GDB调试之前,必须确保手机已越狱,否则无法安装和使用GDB调试软件。下面详细介绍GDB调试IOS 32位程序的环境搭建。 二、IOS 32位调试环境搭建 1.1、软件安装 IOS 32位

    2024年04月25日
    浏览(29)
  • 双机调试环境搭建 windbg + virtualkd

    VMware Workstations (笔者用的版本是16) 虚拟机 Win7 x86 sp1 旗舰版 主机环境 Microsoft Windows 版本 10.0.19042.1083 (命令行输入 VER 或 WINVER 查看) Visual Studio2019 + Windows driver Kit 10.0.19041.685 + Windows Software Development Kit - Windows 10.0.19041.685(VS 2019装好后应该默认的SDK就是,可在控制面板中查看是否

    2024年02月07日
    浏览(31)
  • Flutter - 搭建引擎调试环境(iOS)

    刚开始学Flutter开发时搭建过,没有记录。现在有需要时又忘了,果然好记性不如烂笔头。 注意,调试环境搭建会占用较大硬盘空间。粗略统计,Flutter引擎项目(包含依赖的第三方库)约20GB, host_debug_unopt 构建编译后约16GB, ios_debug_xxx 构建编译后约5GB。所以如果想搭建成功

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包