1. 常用交互操作

  • 远程连接 remote(host,port)

  • send(string) 发送string

  • sendline(string) 发送string及换行符

  • sendafter(magic,string) 接收到magic后发送string

  • sendlineafter(magic,string) 接收到magic后发送string及换行符

  • recvn(N)接受N字节字符

  • recvline()接受一行输出

  • recvlines(N)接受N行输出

  • recvuntil(magic)一直接受直到出现magic

  • clean()丢掉所有缓冲

eg1:

  • moectf NotEnoughTime

    主要就是以字节传输转成字符串a.decode要注意,然后就是b’ ‘要注意

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    from pwn import *
    context(log_level='debug')
    r=remote('192.168.68.1',54239)
    r.sendlineafter(b'1 + 1 =',str(2))
    r.sendlineafter(b'4 / 3 - 1 =',str(0))
    r.recvuntil(b'OK, then some tough ones. Be WELL PREPARED!')
    while 1:
    a=r.recvuntil(b'=')
    a=a.decode('utf-8')
    b=''
    for i in a:
    if i =='\n':
    continue
    if i =='=':
    continue
    if i == '/':
    b+='//'
    continue
    b+=i
    print('b=',b)
    c=eval(b)
    print(c)
    r.send(str(int(c)).encode('utf-8'))
    r.sendline(b'\n')