Centos 5 下Python 2.4 环境中运行pefile module 总是提示参数出错,在python命令行中运行出现以下错误信息:
>>> import pefile
>>> pe=pefile.PE('/forensics/exes/003gangsir.exe')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/site-packages/pefile.py", line 1754, in __init__
self.__parse__(name, data, fast_load)
File "/usr/lib/python2.4/site-packages/pefile.py", line 1804, in __parse__
self.__data__ = mmap.mmap(self.fileno,0, mmap.MAP_PRIVATE)
EnvironmentError: [Errno 22] Invalid argument
经google发现一个可能的原因是python2.4 存在一个bug:mmap不能处理第二个参数为0的调用,上文红色标记的0,故考虑升级python版本。
升级方法参考:http://blog.youkuaiyun.com/yoeen/article/details/6870170 【注:貌似不需要修改yum,可能不同的操作系统情况不同】
重新安装pefile,运行可以显示结果。
【注】pefile需要的userdb.txt的链接:https://code.google.com/p/reverse-engineering-scripts/downloads/detail?name=UserDB.TXT
本文介绍了Centos5系统下使用Python2.4环境中遇到的pefile模块错误问题,主要表现为mmap调用时参数错误。通过分析原因并升级Python版本,最终成功解决了该问题。
7万+

被折叠的 条评论
为什么被折叠?



