pwntools的安装方法

最近学习pwn,配置了32位和64位的pwntools环境,配置过程中虽然参考了别人的博客,但还是遇到了一些问题,总结下安装的过程便于以后的学习。

pwntools是一个CTF框架和漏洞利用开发库,用python开发,由rapid设计,旨在让使用者简单快速的编写exploit。

我自己安装的时候,将kali64,32;ubuntu64,32都安装了一遍。总的来说还是比较顺利的,在安装有的工具的时候可能会提示缺少某个安装模块(一般都是Python里的模块缺少),这时候通过pip install module
就可以了,有的情况下需要更新源。现在开始安装教程吧。

1.安装Capstone

Capstone disassembly/disassembler framework: Core (Arm, Arm64, M68K, Mips, PPC, Sparc, SystemZ, X86, X86_64, XCore) + bindings (Python, Java, Ocaml)

1
2
3
4
5
#!bash
git clone https://github.com/aquynh/capstone
cd capstone
make
make install

安装完这一步没什么错误就可以安装pwntools。

2.安装pwntools

1
2
3
4
#!bash
git clone https://github.com/Gallopsled/pwntools
cd pwntools
python setup.py install

如果没报错,并且终端输入python进入其交互模式后,输入import pwn回车后没报错,差不多就好了。

这时候再尝试pwntools的asm功能:

1
2
>>> pwn.asm("xor eax,eax")
'1\xc0'

如果不是模块错误,报其他的错可以参考这篇文章http://www.cnblogs.com/pcat/p/5451780.html,我目前还没有遇到过。
安装完之后没有什么问题就可以开始配置练习pwn需要用到的环境了。

3.环境配置

常用的工具:

1
2
3
4
gcc: apt-get install gcc
gcc-multilib: apt-get install gcc-multilib #安装在64位的环境下,用它可以编译32位的程序 参数 -m32
socat: apt-get install socat
readelf: apt-get install readelf

  1. 安装pade
    peda是gdb的一个插件,安装后大大提升gdb在分析逆向/溢出程序时的用户体验

    1
    2
    3
    4
    #!bash
    git clone https://github.com/longld/peda.git ~/peda
    echo "source ~/peda/peda.py" >> /.gdbinit
    echo "DONE! debug your program with gdb and enjoy"
  2. 安装gadgets
    比较有名的工具有以下几种,根据自己的习惯选择:

    1
    2
    3
    4
    ROPEME: https://github.com/packz/ropeme
    Ropper: https://github.com/sashs/Ropper
    ROPgadget: https://github.com/JonathanSalwan/ROPgadget/tree/master
    rp++: https://github.com/0vercl0k/rp

这里以 ROPgadget为例:

1
2
3
4
#!bash
git clone https://github.com/JonathanSalwan/ROPgadget.git
python setup.py install
ROPgadget

或是以pip安装:

1
2
3
4
#!bash
git clone https://github.com/JonathanSalwan/ROPgadget.git
pip install ropgadget
ROPgadget

学习过程中遇到的工具会继续更新的!