diff --git a/unblob/handlers/archive/zip.py b/unblob/handlers/archive/zip.py index 8d740a5e05..0c233e1548 100644 --- a/unblob/handlers/archive/zip.py +++ b/unblob/handlers/archive/zip.py @@ -188,7 +188,8 @@ def calculate_chunk(self, file: File, start_offset: int) -> Optional[ValidChunk] if offset == end_of_central_directory_offset: break else: - raise InvalidInputFormat("Missing EOCD record header in ZIP chunk.") + # if we can't find 32bit ZIP EOCD, we fall back to ZIP64 + end_of_central_directory = self._parse_zip64(file, start_offset, offset) has_encrypted_files = self.has_encrypted_files( file, start_offset, end_of_central_directory