Every time I run my script it returns `_curses.error: must call setupterm() first` why?

Every time I run my script it returns `_curses.error: must call setupterm() first` why?

我目前正在尝试在 python 中学习 pwn。我写了一个简单的 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 似乎不是一个有效的命令,在等号后放置一个正斜杠 returns 错误 'expression expected'。 我在 ubuntu 20.04.

上使用 pycharm

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

为了在非 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

你可以用同样的方法设置其他环境变量,比如你提到的TERMexport TERM=linux 是 POSIX shell 语法(或 bash 语法),而用于设置环境变量的 python 语法是:

os.environ['TERM'] = 'linux'