def resource(level, r):
"""Recursive printing of resources"""
if hasattr(r, "data"):
# resource
offset = r.data.struct.OffsetToData
size = r.data.struct.Size
data = pe.get_memory_mapped_image()[offset:offset+size]
m = hashlib.md5()
m.update(data)
print(" "*level + "-%s\t%i\t%i\t%s\t%s\t%s" % (
str(r.name),
r.id,
size,
m.hexdigest(),
pefile.LANG.get(r.data.lang, 'UNKNOWN'),
pefile.get_sublang_name_for_lang(r.data.lang, r.data.sublang)
)
)
else:
# directory
if r.name is None:
print(" "*level + "-" + str(r.id))
else:
print(" "*level + "-" + str(r.name))
for r2 in r.directory.entries:
resource(level+1, r2)
评论列表
文章目录