如何在python中找到PE头的偏移量和签名?

时间:2015-07-16 14:18:20

标签: python file portable-executable

我不知道该如何解决这个问题。我知道签名是50 45 00 00但我不知道如何获取.exe文件并计算它在python中使用的次数。

到最后,它应该具有幻数,PE头的偏移量,PE签名,入口点,图像库,具有PE的部分的数量,具有偏移的每个部分的名称。

这是我到目前为止所做的事情(仅适用于幻数):

def sig(content):
    content = content.encode("hex")
    content = str(content)
    signature = content[0:2].upper()
    sig2 = content[2:4].upper()
    print "Magic Number: " + str(signature) + " " + str(sig2)

如果您能提供帮助,请告诉我们!

1 个答案:

答案 0 :(得分:2)

除了偏移之外的一切

import struct
import pefile
import pydasm

pe = pefile.PE(filename)
print "PE Signature: " + hex(pe.VS_FIXEDFILEINFO.Signature)
print "Image Base: " + hex(pe.OPTIONAL_HEADER.ImageBase)
print "Address of EntryPoint: " + hex(pe.OPTIONAL_HEADER.AddressOfEntryPoint)
print "RVA Number and Size: " + hex(pe.OPTIONAL_HEADER.NumberOfRvaAndSizes)
print "Number of Sections within PE: " + hex(pe.FILE_HEADER.NumberOfSections)

for section in pe.sections:
    print 'Section Name: ' + (section.Name)