kali2021.2配置pwn环境(gdb+pwntools)

2 篇文章 0 订阅

无意间搜到了giantbranch

https://github.com/giantbranch/pwn-env-init

如果只是要个学习pwn的环境,Ubuntu也挺好,就不要在kali上再折腾了。

---------------------------------------------

1. 下载、编译方式安装gdb

wget http://ftp.gnu.org/gnu/gdb/gdb-11.2.tar.gz
 tar -zxvf gdb-11.2.tar.gz
 cd gdb-11.2
 ./configure --with-python='/usr/bin/python3.9'    //根据python的具体版本进行修改 
 make
 sudo make install

安装完成后测试下:

(1)创建个a.c文件。

(2)在可执行文件中加入源码信息, 使用gcc完成: gcc -o a a.c -g  

-o选项的作用是:对命令输出结果进行导入操作,这里是把gcc –o a a.c -g的操作结果输出到文件a中进行保存。

-g选项的作用是:在可执行文件中加入源码信息,比如:可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件都嵌入到可执行文件中,而是在调试时必须保证gdb能找到源文件。btw:很多时候没有源代码,肯定也没有源码信息了。

(3)启动gdb

gdb调试常用命令:

start ---开始执行程序

n --- 单步执行

quit --- 退出调试

断点调试:breakpoint,continue和display 

b 7---breakpoint  7的简写(breakpoint的参数也可以以是某个函数名,表示在此函数处设置一个断点),表示在程序第七行设置一个断点。

c---continue的缩写,表示继续运行程序。

display b ----表示将b的值显示出来(undisplay取消对变量的跟踪),然后再输入单步调试命令n就可以使程序继续运行。

delete n --- 删除Num为n的断点

info ---  一次调试可以设置多个断点,用info命令可以查看已经设置的断点

 条件断点 (break 和run)

 r---表示从头开始运行程序,在a==2的条件下中断才有效。a不等于2,所以中断无效。

watch --- 观察点是当程序访问某个存储单元时中断,如果我们不知道某个存储单元是在哪里被改动的,这时候观察点尤其有用。

 程序执行到b存储单元,将此执行单元执行前后的值都显示出来。

段错误:在gdb中运行,遇到段错误会自动停下来,这时可以用命令查看当前执行到哪一行代码了。gdb显示段错误出现在 _IO_vfscanf 函数中,用bt命令可以看到是哪一个函数调用了它。

2. 安装pwntools

sudo apt-get update
sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install --upgrade pwntools

测试通过。

链接:https://pan.baidu.com/s/1k-vWkuUQ3r8kdximgasfbw?pwd=1twx 
提取码:1twx

-----------------------------------

ubuntu环境安装GDB的三个插件(gef gdbinit peda)

git clone https://github.com/gatieme/GdbPlugins.git ~/GdbPlugins  从git上面下载一些插件
(没有git 可以自行安装)apt-get install git

如果超时,添加 gitclone.com前缀

git clone https://gitclone.com/github.com/gatieme/GdbPlugins.git ~/GdbPlugins

三种模式进行切换,对应启动命令:

echo "source ~/GdbPlugins/peda/peda.py" > ~/.gdbinit 
echo "source ~/GdbPlugins/gef/gef.py" > ~/.gdbinit 
echo "source ~/GdbPlugins/gdbinit/gdbinit" > ~/.gdbinit  

如果要使用gef

 使用gdb

 使用peda

 一般来说,peda 用来做逆向破解是最方便的
gef 用来 debug 最好
gdbinit 相对于上面两个来说显示信息比较少,喜欢简单版的可以试试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值