我正在学习速记技术,并找到了此示例。 br />
unzip nospaces.zip
Archive:  nospaces.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
note:  nospaces.zip may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of nospaces.zip or
        nospaces.zip.zip, and cannot find nospaces.zip.ZIP, period.


我发现我可以使用zip -FF --out'修复'zip文件并提取嵌入的内容,但想了解保存原始文件内容时可能做错了在0x504B0304和0x506B0506之间

我在WinHex(32位Windows 10 VM)和HexFiend(OSX 10.10.5-64位)中得到了相同的结果。

有人可以建议我做什么编辑文件时做错了吗?





#1 楼

如果您考虑实际的PKZipformat
,则每个PKZIP trealer由0x506B0506组成,后跟18个字节来处理其他信息,例如磁盘数量,中央目录总数,它们的大小...),以便正确地分割zip文件应该从偏移量0xCB8E复制该块: br />

评论


谢谢,但这对我没有用。我想知道我是否在这里遇到字节顺序问题? en.wikipedia.org/wiki/Endianness

– codecowboy
2015年10月29日在8:48

另外,我看到的是0504B0506,而不是506B0506

– codecowboy
2015年10月29日在8:54

根据ZIP格式规范,每个pkzip文件都以中央目录尾部结尾为0x504B0506(实际上这很令人困惑,因为有时我们指的是0x6B,有时是0x4B)

– Soufiane Tahiri
15-10-29在10:46