PWNTOOLS
1. 模块介绍
使用
from pwn import *
将所有的模块导入当前的namespace,这条语句会把os,sys等常用的系统库导入常用模块如下:
* asm: 汇编与反汇编,支持x86/x64/arm/mips/powerpc等基本上所有的主流平台 * dynelf: 用于远程符号泄漏,徐亚提供leak方法 * elf: 对elf进行文件操作 * gdb: 配合gdb进行调试 * memleak: 用于内存泄漏 * shellcraft: shellcode的生成器 * tubes: 包括tubes.sock,tubes.process,tubes.ssh,tubes.serialtube,分别适用于不同场景的PIPE * utils: 一些实用的小功能,例如CRC计算,cyclic pattern等
2. 连接
* 本地: sh = process("./level0")
* 远程: sh = remote("127.0.0.1",10001)
* 关闭连接: sh.close()
IO模块
sh.send(data) 发送数据
sh.sendline(data) 发送一行数据
sh.recv(numb = 2048,timeout = default) 接收数据numb指定接收的字节,timeout指定超时
sh.recvline(keepends=True) 接受一行数据,keepends为是否保留行尾的\n
sh.recvuntil("Hello,World\n",drop=false) 接受数据直到我们设置的标志出现
sh.recvall()一直接受知道EOF
sh.recvrepeat(timeout=default) 持续接收知道EOF或者timeout
sh.interactive() 直接进行交互,相当于回到shell的模式,在渠道shell之后使用
汇编与反汇编
汇编: