[环境配置/PWN]Pwn相关工具安装记录

Web手,想要拓展下知识面,整理分享以下近期工具安装记录,转载还请注明来源

换源

建议先换源

配置python2.7版本

在做pwn相关工作时,我们最常用的Python版本就是2.7版。

安装Python尽量使用aptitude,他相对apt的优势在于能够更好的处理依赖问题。

sudo apt-get install aptitude
sudo aptitude install python2.7

补充:相对apt,此工具还可以进行install, remove, reinstall,并可以自动的处理依赖。

使用update-alternatives切换Python版本

update-alternatives --install /usr/bin/python python /usr/bin/python2.7 100
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 200
update-alternatives --config python 
1

安装对应版本的pipsetuptools

get-pip.py是一个引导脚本,允许用户安装pipsetuptools,并在Python环境中使用这些工具。

原理是get-pip.py捆绑了一个带有少量粘合代码的PIP副本,且自动识别Python版本。这个粘合代码来自templates/目录。

// 下载get-pip脚本[直接下载有时会失败],建议访问网址手动复制粘贴
curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py
// 使用get-pip安装特定版本的pip,注意,需要使用对应版本的python运行,如安装python2.7要先修改python为2.7版本。
python get-pip.py

安装Pwntools

# 可能出现缺包情况,可尝试自行pip安装补全
pip install pwntools
# 备选方案,仅在pip完,出现缺包以外情况时使用。
git clone https://github.com/Gallopsled/pwntools.git
cd pwntools
sudo python setup.py install

验证安装效果

# 成功引入即可,可以找题跑一跑
import pwn

安装LibcSearcher

libc库版本辅助库

git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py install

扩展GDB的插件和切换(pwndbg/peda/gef)

GDB 是GNU提供的一款命令行调试器,有用强大的调试功能,并且对于含有调试符号的程序支持源码级调试,同时支持使用Python语言编写拓展,一般用到的扩展插件为gdb-peda、gef或pwndbg。

GDB有几种常用的插件,但是不兼容,需要切换使用。

pwndbg适合调试堆。peda适合查看字符串。

pwndbg

### pwndbg
$ git clone https://github.com/pwndbg/pwndbg ~/peda
$ cd pwndbg
$ sudo ./setup.sh
# 因为peda和pwndbg不相互兼容,如果为自动写入.gdbinit,要手动添加,并在需要时注释切换
$ vim ~/.gdbinit
source ~/pwndbg/gdbinit.py
# 调用验证
gdb
pwndbg> 

peda

### peda
$ git clone https://github.com/longld/peda.git ~/peda
$ echo "source ~/peda/peda.py" >> ~/.gdbinit
# 注释~/.gdbinit的pwndbg,调用验证
$ gdb
gdb-peda> 

gef

### gef,请保证网络连接正常,否则文件可能为空
$ wget -O ~/.gdbinit-gef.py -q http://gef.blah.cat/py
$ echo source ~/.gdbinit-gef.py >> ~/.gdbinit
# 调用验证
source ~/.gdbinit-gef.py
gdb
gef > 

安装定理证明器Z3

z3是由微软公司开发的一个优秀的SMT求解器(也就定理证明器),它能够检查逻辑表达式的可满足性。

# 为Python安装
pip install z3-solver
# 验证
from z3 import *
x = Int('x')
y = Int('y')
s = Solver()
s.add(x + y > 3, x > 1, y > 1)
print(s.check())
print(s.model())

-------------------------------------------------其他待探索-----------------------------------------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值