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


Posted in Python onOctober 05, 2014

本文实例讲述了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根据经纬度计算距离示例
Feb 16 Python
举例讲解Python中装饰器的用法
Apr 27 Python
python实现简单socket通信的方法
Apr 19 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
python 捕获shell脚本的输出结果实例
Jan 04 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
用python爬取历史天气数据的方法示例
Dec 30 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
python求crc32值的方法
Oct 05 #Python
Python获取文件ssdeep值的方法
Oct 05 #Python
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 #Python
python获取文件版本信息、公司名和产品名的方法
Oct 05 #Python
python实现调用其他python脚本的方法
Oct 05 #Python
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 #Python
跟老齐学Python之关于循环的小伎俩
Oct 02 #Python
You might like
供参考的 php 学习提高路线分享
2011/10/23 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
python时间time模块处理大全
2020/10/25 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
写一个方法1000的阶乘
2012/11/21 面试题
中学教师管理制度
2014/01/14 职场文书
幼儿园开学寄语
2014/04/03 职场文书
警示教育活动总结
2014/05/05 职场文书
活动总结怎么写啊
2014/05/07 职场文书
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis