pwntools基础知识

pwntools基础知识

连接:本地process() 里面放文件名 例如process('./test') ;远程remote( , ),remote接受url并指定端口,remote('url',端口)。

数据处理:主要对整数进行打包,就是转换成二进制的形式,用p32,p64进行打包
用u32,u64进行解包

IO模块:

send(data): 发送数据
sendline(data) : 发送一行数据,相当于在末尾加\n      
recv(numb=4096, timeout=default) : 给出接收字节数,timeout指定超时
recvuntil(delims, drop=False) : 接收到delims的pattern
(以下可以看作until的特例)
recvline(keepends=True) : 接收到\n,keepends指定保留\n
recvall() : 接收到EOF
recvrepeat(timeout=default) : 接收到EOF或timeout
interactive() : 与shell交互

ELF模块:

elf = ELF('文件名')

# 获取文件基本地址:
print hex(elf.address)

# 获取函数地址:
print hex(elf.symbols['函数名'])

# 获取函数got表地址:
print hex(elf.got['函数名'])

# 获取函数plt地址
print hex(elf.plt['函数名'])

context:

context.arch = 'amd64'   //设置架构
context.log_level = 'debug' //显示log详细信息
libc = ELF('./libc-2.24.so')  //加载库文件

还有一种写法:

context(os='linux', arch='amd64', log_level='debug')

1、os设置系统为linux系统

2、arch设置架构为amd64,可以简单的认为设置为64位的模式,对应的32位模式是’i386’

3、log_level设置日志输出的等级为debug,调试时一般会设置,这样pwntools会将完整的io过程都打印下来,使得调试更加方便。

shellcraft:

shellcraft模块是shellcode的模块,包含一些生成shellcode的函数。

shellcode = asm(shellcraft.sh())

print(shellcraft.sh()) # 打印出shellcode
print(asm(shellcraft.sh())) # 打印出汇编后的shellcod

asm : 汇编与反汇编,支持x86/x64/arm/mips/powerpc等基本上所有的主流平台

posted @   zzwwwe  阅读(400)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示