首页 > 其他分享 >pwntools基础知识

pwntools基础知识

时间:2023-02-19 19:45:02浏览次数:36  
标签:函数 elf 基础知识 print timeout pwntools shellcraft

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等基本上所有的主流平台

标签:函数,elf,基础知识,print,timeout,pwntools,shellcraft
From: https://www.cnblogs.com/pengui-n3321/p/17135417.html

相关文章

  • 基于OpenMV的图像处理基础知识及例程使用方法
                ......
  • 基础知识-网络基础
    什么是网络我们现在生活中现在是不可缺少网络的,想象一下,没有了微信,没有了社交软件,没有了电话,没有了电脑,我们的社会也不会飞速发展到现在,网络在计算机这个专业,起到很大的作......
  • TS基础知识点
    前言:TS简介相关介绍就不一一赘述,网上自行按照需求搜索查阅即可1.TypeScript的静态类型TypeScript的一个最主要特点就是可以定义静态类型,英文是StaticTyping。那到底......
  • Java基础知识点(带返回值方法的定义和调用
    一:带返回值方法的定义方法的返回值其实就是方法运行的最终结果。如果要在调用处根据方法的结果,去编写另外一段逻辑,为了在调用处拿到方法的结果,就需要定义带返回值的方法。eg......
  • MIMO雷达和相控阵雷达基础知识
    这篇主要是学习一下MIMO雷达的基础知识和相控阵的部分基础知识,因为二者其实是有部分连续的,所以将MIMO雷达和相控阵雷达放在了一起,便于自己的学习和理解。另外本篇文章......
  • Python 学习01 基础知识
    ......
  • 电学基础知识01
    一.电路的基本组成1,电路:电路是电流的流通路径,它是由一些电气设备和元器件按一定方式连接而成的.复杂的电路呈网状,又称网络.电路和网络这两个术语是通用的.2,电路的......
  • Java基础知识点(方法)
    1.方法是程序中最小的执行单元。2.作用:能够提高代码的复用性,提高代码的可维护性(好处)重复代码、具有独立功能的代码可以抽取到方法中。3.方法的定义:把一些代码打包在一起。方......
  • 事务基础知识与执行计划
    事务基础知识数据库事务的概念数据库事务是什么?事务是一组原子性的SQL操作。事务由事务开始与事务结束之间执行的全部数据库操作组成。A(原子性)、(C一致性)、I(隔离性)、D(持......
  • Java基础知识点(二维数组)
                       二维数组1.二维数组的定义方式有多种。下面介绍常见的三种方式:第一种:数据类型[][]数组名=new数据类型[行的......