本文实例讲述了python实现计算资源图标crc值的方法,分享给大家供大家参考。具体方法如下:
实现该功能的关键在于解析资源信息,找到icon的数据,然后计算这些数据的crc
具体实现代码如下:
def _get_iconcrc(self, file_path):
"""
Generates the crc32 hash of the icon of the file.
@return: str, the str value of the file's icon
"""
iconData = ""
mype = pefile.PE(file_path)
if hasattr(mype, "DIRECTORY_ENTRY_RESOURCE"):
resIcons = filter(lambda x: x.id==pefile.RESOURCE_TYPE['RT_ICON'], mype.DIRECTORY_ENTRY_RESOURCE.entries)
if len(resIcons)>0:
resIcons = resIcons[0]
if hasattr(resIcons, "directory"):
for resId in resIcons.directory.entries:
if hasattr(resId, 'directory'):
for resLang in resId.directory.entries:
iconData += mype.get_data(resLang.data.struct.OffsetToData, resLang.data.struct.Size)
if not iconData:
print "not iconData"
return None
else:
return self._crc32(iconData)
希望本文所述对大家的Python程序设计有所帮助。