Skip to content

Pwntools 使用注意点

复制本地路径 | 在线编辑
  1. 最后一定要添加interactive()
  2. 使用recvuntil()进行交互
  3. 有时预期接受 4 个字符,也确实收到了 4 个,但recv()显示收到 1 个,要么使用recvuntil()强制等待收到对应的信息,要么变成recv(1) + recv(3)

  4. pwntools 模拟登录远程机器,执行本地程序和远程程序

    conn = ssh('fix', 'pwnable.kr', port=2222, password='guest')
    get_time = conn.process('date +%s', shell=True)
    p = conn.connect_remote('127.0.0.1', 9002)
    

  5. 如何判断最后 interactive 是成功了呢,通过 sendline(...), recv() 的组合, interactive 如果成功就会收到相关信息,如果失败就会有 EOF_ERROR ,就可以使用 try-except 来实现

    while True:
        try:
           p.sendline("cat flag")
           print(p.recv(1024))
           break
        except:
           p.close()
           continue
    

  6. pwntools 的 asm 模块中,对于 i386 代码有点问题。

  7. 常数不带$

  8. mov 顺序和规定的颠倒了

  9. pwntools 的 asm 模块,需要下载相应架构的binutils: https://docs.pwntools.com/en/stable/install/binutils.html

Comments