基础环境
Ubuntu版本不需要太新,版本稳定就行,遇到问题利用搜索引擎也能轻易解决
- VMware Pro 16
- Ubuntu 18.04
常用软件
安装vim
强大的编辑器
安装git
强大的github仓库管理神器
安装python3
参考链接
安装pip
强大的python包管理器
1
| sudo apt install python3-pip
|
Pwn工具
python2版本的pwntools
1 2 3 4 5 6 7
| sudo apt-get install python python-pip python-dev libssl-dev libffi-dev build-essential
pip install -U setuptools
pip install --upgrade pip
pip install --upgrade pwntools
|
python3版本的pwntools
1 2 3 4 5
| apt-get update
apt-get install python3 python3-dev python3-pip git
pip3 install --upgrade git+https://github.com/arthaud/python3-pwntools.git
|
gdb插件
pwndbg
1 2 3 4 5
| git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
|
peda
1
| git clone https://github.com/longld/peda.git~ /peda
|
gef
网上大多数使用wget的命令进行操作,但是我都无法进行下载,于是直接复制gef.py里面的内容,在本地新建一个gef.py的文件进行粘贴。
由于gdb一次只能使用一个插件,所以使用自动化脚本进行切换
笔者插件存放目录结构

插件配置文件.gdbinit(位于用户根目录下,笔者的位于/home/jimp目录下,没有的话可以新建一个)
1 2 3
| source /home/jimp/safetools/peda/peda.py source /home/jimp/safetools/gef/gef.py #不知道为啥这条影响其他插件的使用,故笔者本地已经删除 source /home/jimp/safetools/pwndbg/gdbinit.py
|
gdb.sh文件(创建于/usr/local/sbin目录下)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| #!/bin/bash function Mode_change { name=$1 gdbinitfile=/home/jimp/.gdbinit #这个路径按照你的实际情况修改 # gdbinitfile=/root/Desktop/mode peda="source /home/jimp/safetools/peda/peda.py" #这个路径按照你的实际情况修改 gef="source /home/jimp/safetools/gef/gef.py" #这个路径按照你的实际情况修改 pwndbg="source /home/jimp/safetools/pwndbg/gdbinit.py" #这个路径按照你的实际情况修改 sign=$(cat $gdbinitfile | grep -n "#this place is controled by user's shell") #这是一个定位flag,此处上面的查找内容要和你自己的保持一致 pattern=":#this place is controled by user's shell" number=${sign%$pattern} location=$[number+2] parameter_add=${location}i parameter_del=${location}d message="TEST" if [ $name -eq "1" ];then sed -i "$parameter_del" $gdbinitfile sed -i "$parameter_add $peda" $gdbinitfile echo -e "Please enjoy the peda!\n" elif [ $name -eq "2" ];then sed -i "$parameter_del" $gdbinitfile sed -i "$parameter_add $gef" $gdbinitfile echo -e "Please enjoy the gef!\n" else sed -i "$parameter_del" $gdbinitfile sed -i "$parameter_add $pwndbg" $gdbinitfile echo -e "Please enjoy the pwndbg!\n" fi } echo -e "Please choose one mode of GDB?\n1.peda 2.gef 3.pwndbg" read -p "Input your choice:" num if [ $num -eq "1" ];then Mode_change $num elif [ $num -eq "2" ];then Mode_change $num elif [ $num -eq "3" ];then Mode_change $num else echo -e "Error!\nPleasse input right number!" fi gdb $1 $2 $3 $4 $5 $6 $7 $8 $9
|
简单使用

32位程序支持
1
| sudo apt install libc6-dev-i386
|
qemu
1 2 3 4 5 6 7
| sudo apt install qemu
sudo apt install qemu-system qemu-user-static binfmt-support
sudo apt install -y gcc-arm-linux-gnueabi
sudo apt install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential gdb-arm-none-eabi synaptic gcc-aarch64-linux-gnu eclipse-cdt git
|
LibcSearcher
1 2 3 4 5 6 7
| sudo pip install capstone
git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py develop
|
ROPgadget
1 2 3 4 5 6 7
| sudo apt install python-capstone git clone https://github.com/JonathanSalwan/ROPgadget.git cd ROPgadget python setup.py install
|
one_gadget
1 2 3
| sudo apt install ruby
gem install one_gadget
|