Pwntools 使用注意点
复制本地路径 | 在线编辑
- 最后一定要添加
interactive() - 使用
recvuntil()进行交互 -
有时预期接受 4 个字符,也确实收到了 4 个,但
recv()显示收到 1 个,要么使用recvuntil()强制等待收到对应的信息,要么变成recv(1) + recv(3) -
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) -
如何判断最后
interactive是成功了呢,通过sendline(...), recv()的组合,interactive如果成功就会收到相关信息,如果失败就会有 EOF_ERROR ,就可以使用try-except来实现
while True: try: p.sendline("cat flag") print(p.recv(1024)) break except: p.close() continue -
pwntools 的 asm 模块中,对于 i386 代码有点问题。
-
常数不带
$号 -
mov 顺序和规定的颠倒了
-
pwntools 的 asm 模块,需要下载相应架构的binutils: https://docs.pwntools.com/en/stable/install/binutils.html