python-计算资源图标的crc值


关键在于解析资源信息,找到icon的数据,然后计算这些数据的crc
[python]
#---------------------------------------------------------------------- 
    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) 

 

 

摘自 小驹的专栏

相关内容

    暂无相关文章

评论关闭