作为我参与的程序的一部分,我收到了一个无法打开的 zip 文件。我发现 zip 中缺少文件头,但我不知道如何将其放回去。简单地替换第一个字节或使用忽略标头来解压缩的程序是行不通的,所以我认为我需要将它们放在文件的其余部分之前。这可能需要偏移文件或其他东西,但我对十六进制编辑/十六进制编辑器了解不多,也不知道如何做我需要做的事情。
我正在使用 Manjaro (程序提供的虚拟机)和 gHex 来查看和编辑文件(尽管我可以从终端安装不同的文件/工作,如果这能解决我的问题)。
编辑:运行 zip -F 或 zip -FF 返回:
Fix archive (-F) - assume mostly intact archive
Zip entry offsets appear off by -4 bytes - correcting...
copying: masterkey
zip warning: reading archive fseek: Invalid argument
zip warning: bad - skipping: masterkey
zip warning: zip file empty
上述问题是我几乎可以肯定 zip 文件不能为空——它应该包含带有标志的内容(尝试提取“固定”zip 也会从存档管理器返回“提取存档时出错”)。
答案1
您可以尝试通过执行命令来恢复损坏的存档:
zip -F corrupted_archive.zip
您可以zip
通过以下方式更加努力地恢复
zip -FF corrupted_archive.zip
对我来说,这比尝试直接编辑文件更安全、更好