天天看点

pwn环境搭建_pwndbg、pwntools环境搭建(Unix系统)

目录

[TOC]

pwndbg环境搭建

项目地址

https://github.com/pwndbg/pwndbg

搭建过程

1、安装环境基础

git

python

python-pip

2、安装过程

使用git命令克隆远程项目到本地。

git clone https://github.com/pwndbg/pwndbg

进入项目根目录并执行一键安装脚本

cd pwndbg && ./setup.sh

该脚本主要是检查了一下系统信息,然后根据系统信息自动安装了一些所需要的工具和依赖库包括gdb,当然有时需要通过源码去编译gdb。

3、配置启用pwndbg

安装完成后,通过编辑用户目录下的gdb配置文件.gdbinit,通过该文件可以启用pwngdb,主要在文件中添加的内容如下,

# 文件路径为所克隆的项目的路径。

source [/path/to/pwndbg/gdbinit.py]

4、问题

待补充。。。

pwntools安装

项目地址

https://github.com/Gallopsled/pwntools/

搭建过程

1、安装环境

python

python-pip

2、安装过程

使用pip命令直接安装

pip install pwntools

4、问题

待补充。。。

环境使用

pwndbg使用

程序动态调试

# 直接gdb后面接程序进入程序调试

gdb [/path/to/program]

pwngdb常用命令

info

信息查看

info functions查看所有函数的信息。

info breakpoints查看所有断点的信息。

info registers查看所有寄存器的信息。

info watchpoints查看所有内存断点的信息。

info threads查看所有线程的信息。

run

直接运行程序直到遇见断点。

start

debug模式停在main(),否则停在start()。

break

下断点,后面可直接加函数名表示在该函数的开头处下断点,也可以直接加地址不过需要在地址前加上一个*号。如,break main或者break *0xdeadbeaf。

delete

可以使用delete来删除断点,delete breakpoints删除所有断点,delete 加上一个序号可以删除指定的断点。

stack

查看栈里的内容。

x

查看指定内存地址的内容。

一般是x/[n/f/u]的形式,其中n、f、u为控制打印形式的参数

n代表打印格式,可为o(八进制),x(十六进制),d(十进制),u(无符号十进制),t(二进制),f(浮点类型),a(地址类型),i(解析成命令并反编译),c(字符)和s(字符串)

f 用来设定输出长度,b(byte),h(halfword),w(word),giant(8bytes)。

u 指定单位内存单元的字节数(默认为dword) 可用b(byte),h(halfword),w(word),giant(8bytes)替代x指令也可以显示地址上的指令信息,用法:x/i

checksec

检查程序的保护机制。

next

动态调试命令,单步步过。

step

动态调试命令,单步步入。

finish

执行到当前函数的返回处。

vmmap

查看程序堆栈结构。

search

搜索内存中的信息。

continue

继续运行到下一个断点。

待补充。。。