本博客年代久远,图片已经失效,但不影响解题方法,若是解决了您的问题,很是欣慰
闲来无事,装个kali玩玩,结果,遇到的坑真是一步接一步,今天说说import pwn时,出现苦逼的ImportError:cannot import name ENUM_P_TYPE
,*“No picture,you say a j8”*上图:
*[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OerFtISZ-1602040145475)(/large/)] *
类似以上什么不能导入name XXX的稀奇古怪的问题,我一个菜鸡哪里知道,于是试遍各大搜索引擎,终于在一篇满是英文的网站找到了这个问题的描述,好心的我给你们贴上链接:/Gallopsled/pwntools/issues/1189
(github上有解决方法)
github就是强大,我感动的痛哭流涕,不枉费我的一片苦苦查找。在这里我了解到了一个东西:pyelftools,具体是什么,恕在下无能,我没查到。
如果知道的话,欢迎评论留言,感激不尽。
在github里面关于ImportError问题,给出了答案,如果我没翻译错的话,有两种改法;
1.找到错误的目录,修改文件里的源码,将ENUM_P_TYPE改为ENUM_P_TYPE_BASE,我的那个elf.py文件目录如下,(每个人大概差不多):/usr/local/lib/python2.7/dist-packages/pwntools-3.14.0.dev0-py2.7.egg/pwnlib/elf/elf.py
在这个py文件里,修改55行1749行的ENUM_P_TYPE,改为ENUM_P_TYPE_BASE,(具体的行数可能有出入,相差几行左右)。
是的,有人用这种方法成功了,但是,不是我。就当我,满心欢喜的时候,又出现了另一个导入错误。所以我用了第二种方法,
your pyelftools version to 0.24
我还不清楚pyelftools是什么,就让我把他的版本降到0.24版本,
首先,这个文件在哪?怎么降低(当然我采用的是删了现有版本,下个0.24版本的)
我的pyelftools路径如下:
/usr/local/lib/python2.7/dist-packages/pyelftools-0.25(没错原来是0.25的)
然后我搜索了一波,找到了pyelftools
的下载地址:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEMUf82P-1602040145476)(/large/)]
那个pip install pyelftools==0.2x
,就是linux下的安装的命令,点击Release history就可以查看以往的历史版本。替换之后,我高兴的import pwn测试了一下,结果,留下了悲伤的泪水,还是错误,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DJ9SbkiM-1602040145478)(/large/)]
我又紧接着换了0.23
的版本,
*[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PrFEsUu5-1602040145479)(/large/)] *没错,成功了,没错,成功了,没错,成功了
。