python实现计算资源图标crc值的方法

yipeiwu_com6年前Python基础

本文实例讲述了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程序设计有所帮助。

相关文章

python实现问号表达式(?)的方法

python中的and和or和其它语言的区别很大其它语言中的and和or都是返回bool类型的结果,python不是。它返回的是做and和or运算的其中一个值。那个值决定了这个表达式的值...

Python3.5内置模块之random模块用法实例分析

本文实例讲述了Python3.5内置模块之random模块用法。分享给大家供大家参考,具体如下: 1、random模块基础的方法 #!/usr/bin/env python # -*...

Python3.4实现远程控制电脑开关机

本文实例为大家分享了Python实现远程操控电脑的具体代码,供大家参考,具体内容如下 import poplib import sys import smtplib from...

python实现任意位置文件分割的实例

应用场景 在嵌入式开发中,常常需要将一个binary文件分割成多个文件,或者将一个binary的某块区域抓成一个单独文件。本篇blog以python为例,实现了以上需求; 实现代码...

python3 打印输出字典中特定的某个key的方法示例

本文实例讲述了python3 打印输出字典中特定的某个key的方法。分享给大家供大家参考,具体如下: 大家都知道python中的字典里的元素是无序的,不能通过索引去找到它,今天说我下通过...