时间:2021-07-01 10:21:17 帮助过:81人阅读
实现该功能的关键在于解析资源信息,找到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程序设计有所帮助。