我的一个朋友给我发了一个 zip 文件,他们篡改/破坏了它。在这种情况下,它是一个 Minecraft 资源包。我根本无法打开该文件,我尝试了很多方法来提取内容。使用许多 Windows 工具和 Linux 工具。我知道可以提取它,因为你可以将它加载到 Minecraft 中,并且它可以完全正常工作(他向我保证这是可能的)
你们能给我一些帮助或指导吗?我不想被他打败。
以下是 zip 文件的链接:https://www.mediafire.com/file/xcbg5ayrcawy8iv/pack.zip/file
答案1
Zip 档案中的文件信息重复出现在两个地方:位于每个文件数据之前的单独元数据块中,以及位于末尾的“中央目录”中。您可以从头到尾阅读档案,在找到文件时对其进行处理,也可以获取末尾的中央列表并使用其信息跳转回每个文件。
大多数归档工具使用中央目录来列出所有文件,因为所有文件都集中在一个地方,因此速度更快。问题是您的归档没有。
但是,它仍然可以被主要依赖于每个文件元数据块的 Zip 处理库读取 - 如果您有 Python,那么该zipfile
模块将能够读取存档内容。它甚至允许您使用提取文件.extractall()
,尽管您必须先从 zipfile.py 中删除“文件名不匹配”一致性检查。
此存档中的每个文件元数据也包含无意义的信息,例如虚假的“原始大小”或“修改时间”。更重要的是,“CRC32”字段也是错误的,因此您还必须从“zipfile”模块中删除“坏 CRC”错误报告。