Patent ID: 7603390

Claim:
A method for recovering data, the method comprising: using at least one of a plurality of offset plus size checks to locate a central directory in a file archive, wherein using the at least one of the plurality of offset plus size checks comprises: determining whether the file archive comprises an end of central directory record, wherein determining whether the file archive comprises the end of central directory record comprises scanning the file archive backwards for an end of central directory signature, in response to determining that the file archive comprises the end of central directory record, retrieving an offset of the central directory from the end of central directory record, determining whether the offset of the central directory comprises a special value indicating that the file archive uses a zip 64 type, in response to determining that the offset of the central directory does not comprise the special value indicating that the file archive uses a zip 64 type, locating the central directory at the retrieved offset from the end of central directory record, and in response to determining that the offset of the central directory comprises the special value indicating that the file archive uses a zip 64 type: scanning the file archive for a zip 64 end of central directory record, retrieving an offset for the central directory from the zip 64 end of central directory record, and locating the central directory at the retrieved offset from the zip 64 end of central directory record; determining that a local header located in the file archive is authentic if at least one of a plurality of records in the local header match at least one of a corresponding record in the central directory, the local header being located in the file archive using the retrieved offset specified in the central directory; determining that the local header is valid wherein at least one of the plurality of offset plus size checks are used to find items in the file archive and to resolve inconsistencies between records in the file archive; and recovering item data associated with the local header wherein at least one of the plurality of offset plus size checks are performed to determine if the local header is authentic and valid.