Sam*_*Sam 3 filesystems format zip
多年来,我有很多机会对专有文件进行“逆向工程”,而且我注意到很多时候这些都是“伪装的”ZIP 文件,它们只是打包标准的 XML、HTML、配置和原始文本文件。但我不明白开发者为什么要这样做。
我脑海中关于这些“伪装”文件格式的几个例子是:
还有许多其他此类文件格式,有时甚至确实不希望其数据文件被公开读取的公司也依赖这种伪装的 ZIP 来存储数据(例如游戏保存)。
与自定义文件类型相比,ZIP 文件有哪些技术优势?
在 ZIP 之上构建(有时是专有的)新文件格式的做法是否有一个名称?
如果您希望新的文件格式能够与其他应用程序互操作,则需要完全定义您的格式。构建在 ZIP、XML 和 HTML 等其他标准之上,减少了大量文档和维护工作。
格式设计者通常也是第一个实现者。使用现有标准意味着他们可以使用现有的、已知正确且有效的工具来创建和阅读。例如,这意味着 Microsoft Office 文件格式设计器不需要调试序列化和反序列化逻辑,因为它们已经在使用经过行业验证的 XML。
使用压缩存档而不是普通存档(例如 TAR)意味着您的格式会在可能的情况下自动减少所需的存储空间。ZIP 是一个 ISO 标准并且无专利(只要它没有使用强大的算法加密),因此设计者和实现者不需要支付许可证费用,这与 RAR 不同。
在不同的硬件或平台上实现消费应用程序可能需要重写大部分代码,除非它是建立在已经流行的标准之上的。例如,EPUB 阅读器可以与 ZIP 阅读器库(通常内置于各种框架中)和 HTML 查看器一起修补。开发人员方面的工作几乎为零,然后他们可以专注于其他功能。由于框架和 CPU 可能已针对处理 ZIP 压缩进行了优化,因此它们的性能通常比自定义压缩格式好得多。另一个很少考虑的因素是安全性和可靠性。自定义归档格式可能看起来工作速度更快或压缩效率更高,但对于现实世界的数据,它可能会崩溃,或更糟糕的是,返回错误的读取结果,从而导致安全漏洞或不正确的结果。
对于不希望其文件被读取的公司,可以在 ZIP 之上构建大量解决方案。AES 加密可作为 AE-x 下 ZIP 的开放标准。也许他们不需要隐藏整个结构,只需隐藏值,他们可以加密 XML/JSON 或文件上的各个条目。EPUB DRM 很容易被破解,但无论电子书是否使用基于非 zip 的格式,这种情况都会发生。
我不认为构建基于 ZIP 的新格式有一个特定的名称。当您想要存储字符串时,您可以选择一种可用的文本编码标准,如果您想对值保密,则可以使用另一种加密标准对其进行加密,而不是发明一种新的编码方案。这些设计师所做的只是采用现有的标准,他们不仅使用 ZIP,还使用 XML、Unicode、各种图像格式等。
关于 Microsoft 格式是 ZIP,好吧,不是全部。2007 年之前的 Office 文件则不然,这也是实施和改进该格式困难的部分原因(另一个原因是 Microsoft 故意通过不记录它们来阻止人们这样做)。XLSB 是 ZIP,但它使用二进制序列化而不是 XML,这可以加快保存和打开速度,但之后,它的运行速度和内存效率与 XLSX 文件一样快。ACCDB 与前身 MDB 一样,不是 ZIP 文件,数据库一般都对压缩过敏。Visio 转换速度较慢,Visio 2010 使用基于 XML 的 VDX(未压缩),然后在 2013 年,它添加了 VSDX(基于 XML 和 ZIP),而 Project 和 Publisher 似乎不会很快采用新格式。XPS、Nuget 和 Appx 是 zip,但 csproj、vbproj 等不是。MSI 安装程序是存档文件,但不是 ZIP 文件。
有趣的是,您停在了 JAR & WAR 处,因为继续下去,Android APK 文件是 ZIP 文件(其本身可能包含它引用的 JAR 的内容),总体 AAB 也是如此。在 iOS 上,IPA 文件也是 ZIP。LibreOffice 默认格式、ODT、ODS 和 ODP 均基于 ZIP 和 XML,与 Microsoft Office 的新格式几乎同时设计。
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |