跳转到主要内容

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 olefileeasy_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 (120.0 kB 查看哈希值)

上传时间 源代码

由以下组织支持