pwntools简介

  1. 安装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
  2. 安装capstone:
    git clone https://github.com/aquynh/capstone
    
    cd capstone
    
    make
    
    sudo make install
  3. 安装pwntools:
    sudo apt-get install libssl-dev
    
    sudo pip install pwntools
  4. 测试安装是否成功:

>>> 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:一些实用小工具
posted @ 2018-07-19 11:03  kailicard  阅读(1648)  评论(0编辑  收藏  举报