Python包,用于解析、读取和写入Microsoft OLE2文件(结构化存储或复合文档,Microsoft Office)- PIL(Python图像库)中OleFileIO模块的改进版本。
项目描述
olefile是一个Python包,用于解析、读取和写入Microsoft OLE2文件(也称为结构化存储、复合文件二进制格式或复合文档文件格式),例如Microsoft Office 97-2003文档、MS Office 2007+文件中的vbaProject.bin、Image Composer和FlashPix文件、Outlook消息、 StickyNotes、几种显微镜文件格式、McAfee防病毒隔离文件等。
快速链接: 主页 - 下载/安装 - 文档 - 报告问题/建议/疑问 - 联系作者 - 仓库 - Twitter更新
新闻
关注Twitter上的所有更新和新闻:https://twitter.com/decalage2
2015-01-25 v0.42:改进了Python 2.x中流/存储名称的特殊字符处理(使用UTF-8代替Latin-1),修复了空存储中的listdir错误。
2014-11-25 v0.41:OleFileIO.open和isOleFile现在支持存储在字节字符串中的OLE文件,修复了Python 3的安装程序,添加了对Jython(Niko Ehrenfeuchter)的支持。
2014-10-01 v0.40: 将OleFileIO_PL重命名为olefile,增加了对大于4K的流的初始写入支持,更新了文档和许可证,改进了安装脚本。
2014-07-27 v0.31: 修复了对4K扇区大文件的支持,感谢Niko Ehrenfeuchter、Martijn Berger和Dave Jones。添加了来自Pillow(由hugovk)的测试脚本。修复了Python 3的安装问题(Martin Panter)
2014-02-04 v0.30: 现在兼容Python 3.x,感谢Martin Panter完成了大部分艰苦的工作。
2013-07-24 v0.26: 增加了解析流/存储时间戳的方法,改进了listdir以包括存储,修复了direntry时间戳的解析
2013-05-27 v0.25: 改进了元数据提取、属性解析和异常处理,修复了问题 #12
2013-05-07 v0.24: 新增提取元数据的功能(get_metadata方法和OleMetadata类),改进了getproperties以将时间戳转换为Python datetime
2012-10-09: 发布了基于OleFileIO_PL的分析工具包python-oletools
2012-09-11 v0.23: 添加了对类似文件对象的支持,修复了问题 #8
2012-02-17 v0.22: 修复了问题 #7(getproperties中的bug)和问题 #2(添加了close方法)
2011-10-20: 在bitbucket上托管代码以简化贡献和错误跟踪
2010-01-24 v0.21: 修复了对大端CPU(如PowerPC Macs)的支持
2009-12-11 v0.20: 修复了当文件名不是纯字符串时的OleFileIO.open中的小bug
2009-12-10 v0.19: 修复了对64位平台的支持(感谢Ben G.和Martijn报告此bug)
有关更多信息,请参阅源代码中的变更日志。
下载/安装
如果您已安装pip或setuptools(pip包含在Python 2.7.9+中),您可以简单地运行 pip install olefile 或 easy_install olefile 进行首次安装。
要更新olefile,运行 pip install -U olefile。
否则,请参阅https://bitbucket.org/decalage/olefileio_pl/wiki/Install
功能
解析、读取和写入任何OLE文件,如Microsoft Office 97-2003传统文档格式(Word .doc、Excel .xls、PowerPoint .ppt、Visio .vsd、Project .mpp)、Image Composer和FlashPix文件、Outlook消息、 StickyNotes、Zeiss AxioVision ZVI文件、Olympus FluoView OIB文件等
列出OLE文件中包含的所有流和存储
将流作为文件打开
解析和读取属性流,其中包含文件的元数据
便携式、纯Python模块,无依赖
olefile可以用作独立的包或与PIL/Pillow一起使用。
olefile主要面向开发者。如果您正在寻找分析OLE文件或提取数据(特别是用于安全目的,如恶意软件分析和取证)的工具,请参阅我的python-oletools,它基于olefile构建并提供了一个高级接口。
历史
olefile基于PIL中的OleFileIO模块,这是由Fredrik Lundh创建和维护的优秀的Python Imaging Library。olefile API仍然与PIL兼容,但自2005年以来,我已经在内部实现上进行了显著的改进,包括新功能、错误修复和更健壮的设计。从2005年到2014年,该项目被称为OleFileIO_PL,并在2014年将其名称更改为olefile,以庆祝其9周年及其新的写入功能。
据我所知,olefile是读取MS OLE2文件最完整和最健壮的Python实现,可在多个操作系统上移植。(如果知道其他类似Python模块,请告诉我)
自2014年以来,olefile/OleFileIO_PL已集成到Pillow中,这是PIL的友好分支。olefile将继续作为独立项目进行改进,并且新版本将定期合并到Pillow中。
相对于PIL中OleFileIO原始版本的主要改进
兼容Python 3.x和2.6以上版本
修复了许多错误
支持大于6.8MB的文件
支持64位平台和大端CPU
健壮:许多检查来检测格式不正确的文件
运行时选项,可选择是否解析格式不正确的文件或引发异常
改进的API
元数据提取,流/存储时间戳(例如,用于文档法医分析)
可以打开文件对象
添加setup.py和install.bat以简化安装
基于斜杠的路径语法更方便
写入功能
文档
请参阅在线文档获取更多信息,特别是OLE概述和API页面,这些页面描述了如何在Python应用程序中使用olefile。同样的文档也包含在olefile包的doc子目录中。
实际示例
实际示例:使用OleFileIO_PL进行恶意软件分析和法医分析。
另请参阅这篇论文,关于法医的Python工具,其中包含olefile。
许可协议
olefile(以前称为OleFileIO_PL)版权所有(c)2005-2015 Philippe Lagadec(http://www.decalage.info)
版权所有。
以下条件满足时,允许重新分发和使用源代码和二进制形式,无论是否修改
源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。
二进制形式重新分发必须复制上述版权声明、本条件列表和以下免责声明在文档和其他与分发提供的材料中。
本软件由版权所有者和贡献者提供“现状”和任何明示或暗示的保证,包括但不限于适销性和针对特定目的的适用性保证均予以否认。在任何情况下,版权所有者或贡献者不应对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论何种原因和任何理论责任,即使在被告知此类损害的可能性。
olefile基于Fredrik Lundh发布的Python Imaging Library (PIL)中的OleFileIO模块的源代码,许可如下
Python Imaging Library (PIL)
版权(c)1997-2005由Secret Labs AB
版权(c)1995-2005由Fredrik Lundh
通过获取、使用和/或复制此软件及其相关文档,您同意您已阅读、理解并将遵守以下条款和条件
在此特此授予使用、复制、修改和分发此软件及其相关文档的权利,无论出于何种目的,无论是否收费,前提是上述版权声明出现在所有副本中,并且该版权声明和本许可声明出现在支持性文档中,并且Secret Labs AB的名称或作者的名称不得用于与软件的分发相关的广告或宣传,除非事先获得具体的书面许可。
SECRET LABS AB和作者放弃与该软件有关的任何保证,包括所有暗示的适销性和针对特定目的的适用性保证。在任何情况下,SECRET LABS AB或作者不对任何特殊、间接或后果性损害或任何损害(包括但不限于因使用或性能导致的损失、数据或利润)承担责任,无论基于合同、疏忽或其他侵权行为,无论源于或与使用或性能有关。
项目详情
OleFileIO_PL-0.42.1.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3466f8e9bce80bbe447aef69cb5653d40d425944cb9f9052bbd8f1511eeca98e |
|
MD5 | 624270bf59af831e54a2642d17097d9d |
|
BLAKE2b-256 | a005f124ecb536ae2090891d3bcb6a65facd1358f4fd10422c1354357687e8dc |