- 安装binutils:
git clone https://github.com/Gallopsled/pwntools-binutils sudo apt-get install software-properties-common sudo apt-add-repository ppa:pwntools/binutils sudo apt-get update sudo apt-get install binutils-arm-linux-gnu
- 安装capstone:
git clone https://github.com/aquynh/capstone cd capstone make sudo make install
- 安装pwntools:
sudo apt-get install libssl-dev sudo pip install pwntools
测试安装是否成功:
>>> from pwn import * >>> asm('nop') 'x90' >>> asm('nop', arch='arm') 'x00xf0 xe3'
Pwntools 分为两个模块,一个是 pwn,简单地使用 from pwn import * 即可将所有子模块和一些常用的系统库导入到当前命名空间中,是专门针对 CTF 比赛的;而另一个模块是 pwnlib,它更推荐你仅仅导入需要的子模块,常用于基于 pwntools 的开发。
下面是 pwnlib 的一些子模块:
adb:安卓调试桥 args:命令行魔法参数 asm:汇编和反汇编,支持 i386/i686/amd64/thumb 等 constants:对不同架构和操作系统的常量的快速访问 config:配置文件 context:设置运行时变量 dynelf:用于远程函数泄露 encoders:对 shellcode 进行编码 elf:用于操作 ELF 可执行文件和库 flag:提交 flag 到服务器 fmtstr:格式化字符串利用工具 gdb:与 gdb 配合使用 libcdb:libc 数据库 log:日志记录 memleak:用于内存泄露 rop:ROP 利用模块,包括 rop 和 srop runner:运行 shellcode shellcraft:shellcode 生成器 term:终端处理 timeout:超时处理 tubes:能与 sockets, processes, ssh 等进行连接 ui:与用户交互 useragents:useragent 字符串数据库 util:一些实用小工具