pwntools python 未导入
pwntools python not importing
$ apt-get update
$ apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
$ pip install --upgrade pip
$ pip install --upgrade pwntools
在我 运行 使用上面的命令安装 pwntools 之后,当我转到 python 并导入 pwntools 时,它显示了以下错误。
> christos@ubuntu:~$ python Python 2.7.12 (default, Dec 4 2017,
> 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright",
> "credits" or "license" for more information.
> >>> import pwn Traceback (most recent call last): File "<stdin>", line 1, in <module> File
> "/home/christos/.local/lib/python2.7/site-packages/pwn/__init__.py",
> line 4, in <module>
> from pwn.toplevel import * File "/home/christos/.local/lib/python2.7/site-packages/pwn/toplevel.py",
> line 20, in <module>
> import pwnlib File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/__init__.py",
> line 43, in <module>
> importlib.import_module('.%s' % module, 'pwnlib') File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
> __import__(name) File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/dynelf.py",
> line 57, in <module>
> from pwnlib import elf File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/elf/__init__.py",
> line 9, in <module>
> from pwnlib.elf.corefile import Core File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/elf/corefile.py",
> line 85, in <module>
> from pwnlib.elf.elf import ELF File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/elf/elf.py",
> line 55, in <module>
> from elftools.elf.enums import ENUM_P_TYPE ImportError: cannot import name ENUM_P_TYPE
这是因为ENUM_P_TYPE
不在/usr/lib/pythonXX/site-packages/elftools/elf/enums.py
,而是ENUM_P_TYPE_BASE
在里面,所以有一个解决方案,把ENUM_P_TYPE
改成ENUM_P_TYPE_BASE
在 /usr/lib/pythonXX/site-packages/pwnlib/elf/elf.py
。 (只有 2 个地方:第 54 行和第 1749 行)
与 pointed out by @wujiechao 一样,等待 pwntools
修复发布的最佳选择可能是恢复到 pyelftools
模块的先前版本:
python2.7 -m pip install --upgrade pyelftools==0.24
$ apt-get update
$ apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
$ pip install --upgrade pip
$ pip install --upgrade pwntools
在我 运行 使用上面的命令安装 pwntools 之后,当我转到 python 并导入 pwntools 时,它显示了以下错误。
> christos@ubuntu:~$ python Python 2.7.12 (default, Dec 4 2017,
> 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright",
> "credits" or "license" for more information.
> >>> import pwn Traceback (most recent call last): File "<stdin>", line 1, in <module> File
> "/home/christos/.local/lib/python2.7/site-packages/pwn/__init__.py",
> line 4, in <module>
> from pwn.toplevel import * File "/home/christos/.local/lib/python2.7/site-packages/pwn/toplevel.py",
> line 20, in <module>
> import pwnlib File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/__init__.py",
> line 43, in <module>
> importlib.import_module('.%s' % module, 'pwnlib') File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
> __import__(name) File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/dynelf.py",
> line 57, in <module>
> from pwnlib import elf File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/elf/__init__.py",
> line 9, in <module>
> from pwnlib.elf.corefile import Core File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/elf/corefile.py",
> line 85, in <module>
> from pwnlib.elf.elf import ELF File "/home/christos/.local/lib/python2.7/site-packages/pwnlib/elf/elf.py",
> line 55, in <module>
> from elftools.elf.enums import ENUM_P_TYPE ImportError: cannot import name ENUM_P_TYPE
这是因为ENUM_P_TYPE
不在/usr/lib/pythonXX/site-packages/elftools/elf/enums.py
,而是ENUM_P_TYPE_BASE
在里面,所以有一个解决方案,把ENUM_P_TYPE
改成ENUM_P_TYPE_BASE
在 /usr/lib/pythonXX/site-packages/pwnlib/elf/elf.py
。 (只有 2 个地方:第 54 行和第 1749 行)
与 pointed out by @wujiechao 一样,等待 pwntools
修复发布的最佳选择可能是恢复到 pyelftools
模块的先前版本:
python2.7 -m pip install --upgrade pyelftools==0.24