この記事の例では、Python でリソースアイコンの crc 値を計算する方法を説明し、参考のために皆さんに共有します。具体的な方法は以下の通りです。
この関数を実装する鍵は、リソース情報を解析し、アイコン データを見つけて、これらのデータの 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 プログラミング設計に役立つことを願っています。