私が参加しているプログラムの一部として開くことができないzipファイルを受け取りました。ファイルヘッダーがzipから欠落していることがわかりましたが、再挿入する方法がわかりません。単に最初のバイトを置き換えるか、ヘッダーを無視して解凍するプログラムを使用することはうまくいかないので、ファイルの残りの部分より前に置く必要があるようです。オフセットファイルなどが必要な場合がありますが、16進編集/ 16進エディタについてはわかりませんが、必要な作業を行う方法がわかりません。
私は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
私にとっては、これはファイルを直接編集するよりも安全で優れています。