pwn学习总结(二) —— python常用命令

pwn学习总结(二) —— python常用命令

基础命令

模块

导入pwntools模块
from pwn import *

连接

连接远程服务器
pwn.remote('IP地址', 端口号)

若不连接远程服务器,只在本地测试
process(./文件名)

发送数据

发送一堆数据
send(data)

发送一行数据,并在末尾加上换行符(\n)
sendline(data)

在指定字符出现后输入指定字符串
sendlineafter('等待的字符串', '输入的字符串')

接收数据

接收数据,numb指定字节数,timeout指定超时
recv(numb=4096, timeout=default)

接收一行,keepends为是否保留行尾的换行符(\n)
recvline(keepends=True)

一直接收到delims的pattern出现
recvuntil(delims, drop=False)

持续接受直到EOF或timeout
recvrepeat(timeout=default)

一直接收直到达到文件EOF
recvall()

交互

在取得shell之后使用,直接进行交互,相当于回到shell的模式
interactive()

连接gdb
pwnlib.gdb.attach(proc.pidof(p)[0])

其它命令

打开elf文件
elf = ELF('[文件名]')

查看函数地址(PLT)
plt_addr = hex(elf.symbols['函数名'])

文件内定位字符串地址
elf.search('字符串').next()

把整数排列成32位小端数据
p32(整数)

将小端数据解为宽度最大为4字节的整数
enhex(p32(字符串))

把整数排列成64位小端数据
p64(整数)

将小端数据解为宽度最大为8字节的整数
enhex(p64(字符串))

生成指定字符数量的字符串
cyclic(字符数)

查找指定字符串偏移
cyclic_find('四个字母')

生成一段shellcode并反汇编
asm(shellcraft.sh())

发布了45 篇原创文章 · 获赞 2 · 访问量 1837

猜你喜欢

转载自blog.csdn.net/qq_41988448/article/details/103126883