제가 참여하고 있는 프로그램의 일부로 열 수 없는 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
나에게는 이것이 파일을 직접 편집하는 것보다 더 안전하고 낫습니다.