- 安裝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') '\x00\xf0 \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:一些實用小工具