0

我目前正在尝试学习pwnpython。我写了一个简单的 Hello world 脚本:

from pwn import *  

io = process('sh') 
io.sendline('echo Hello, world') 
io.recvline()

让它运行。立即返回两个错误,说明:

_curses.error: setupterm: could not find terminfo database
_curses.error: must call (at least) setupterm() first

我环顾四周,发现解决方案应该说明:

export TERM=linux
export TERMINFO=/etc/terminfo

现在, export 似乎不是一个有效的命令,在等号后放置一个正斜杠会返回错误'expression expected'。我在 ubuntu 20.04 上使用 pycharm。

那么我的问题是我将导出代码放在哪里?

4

1 回答 1

1

为了在非 pty IDE 中运行 pwntools 脚本,最好的方法是禁用 pwntools 终端交互。这可以通过在环境中设置PWNLIB_NOTREM为来完成1。脚本内部的示例:

import os
os.environ['PWNLIB_NOTERM'] = '1'

from pwn import *  # the modifications need to happen before this import

# code follows

您可以设置其他环境变量的相同方式,如TERM您提到的。export TERM=linux是 POSIX shell 语法(或 bash 语法),而用于设置这样的环境变量的 python 语法是:

os.environ['TERM'] = 'linux'
于 2021-04-20T17:03:05.977 回答