如何使用“pefile.py”获取文件(.exe)版本
2 个回答
3
我不太确定我是否理解你的问题,但如果你的问题是关于如何使用pefile来获取一个可执行文件的版本信息,那么也许可以参考一下这个教程中的内容:
import pefile
pe = pefile.PE("/path/to/pefile.exe")
print pe.dump_info()
这段代码应该能给你提供版本信息。我不太清楚pefile在解析不完整的文件时表现得怎么样,但我推测版本信息应该在文件的头部,而pefile是通过一种生成器来读取文件的。如果文件的头部是可以解析的,那么读取这些信息应该是没问题的。
7
我觉得这是你能找到的最佳答案:
import pefile
pe = pefile.PE("/path/to/something.exe")
print hex(pe.VS_VERSIONINFO.Length)
print hex(pe.VS_VERSIONINFO.Type)
print hex(pe.VS_VERSIONINFO.ValueLength)
print hex(pe.VS_FIXEDFILEINFO.Signature)
print hex(pe.VS_FIXEDFILEINFO.FileFlags)
print hex(pe.VS_FIXEDFILEINFO.FileOS)
for fileinfo in pe.FileInfo:
if fileinfo.Key == 'StringFileInfo':
for st in fileinfo.StringTable:
for entry in st.entries.items():
print '%s: %s' % (entry[0], entry[1])
if fileinfo.Key == 'VarFileInfo':
for var in fileinfo.Var:
print '%s: %s' % var.entry.items()[0]