XboxDev / extract-xiso

Xbox ISO Creation/Extraction utility. Imported from SourceForge.
http://sourceforge.net/projects/extract-xiso/
Other
704 stars 88 forks source link

extract-xiso can fail to list or extract certain files in rare cases #76

Closed gaasedelen closed 1 year ago

gaasedelen commented 1 year ago

I have been vetting extract-xiso (32, and 64bit builds) on linux against xbfuse. I extract the redump ISO using each tool to separate directories, and then sha1 all files in the extractions.

But it appears that extract-xiso fails to see and extract a certain file from the following redump ISO:

Loaded 2581 REDUMP ISO hashes
--------------------------------------------------
 -    FILE PATH: /volume1/software/xbox/games/redump/100 Best Xbox Games Game Disc, The (UK).iso
 -    FILE SHA1: 5d1d8ddfb2c4a48eab5253bbb0888637f60efe30
 -  REDUMP NAME: 100 Best Xbox Games Game Disc, The (UK)
 - - - - - - - - - - - - - - - - - - - -
 - RUNNING extract_xbfuse(...)
 - MOUNTING...
 - COPYING FILES...
 - UNMOUNTING...
 - HASHING FILES...
 - EXTRACTION DONE!
 - - - - - - - - - - - - - - - - - - - -
 - RUNNING extract_xiso_32(...)
 - HASHING FILES...
 - EXTRACTION DONE!
 - - - - - - - - - - - - - - - - - - - -
 - RUNNING extract_xiso_64(...)
 - HASHING FILES...
 - EXTRACTION DONE!
 - COMPARING ALL HASHES...
 ---- extract_xbfuse vs extract_xiso_32
!!! HASH FILE COMPARISON FAILED BETWEEN extract_xbfuse AND extract_xiso_32 !!!

Specifically, xbfuse produced one extra file from the ISO that extract-xiso did not:

5d7cdd950e87b5feaad5072037560f860b302da0  Quantum/data/frontend/savebar/model.cmm

Based on visual inspection of the file in a hex editor, I do believe this is a real file that extract-xiso has missed. I also tried the 32 bit windows release build of extract-xiso on github and it does not list the file either:

listing.txt

Here are the sha1 hash listings which again show the file missing file between the two tools:

sha1_extract_xiso.txt sha1_xbfuse.txt

I am not sure when I will find the time to dig into this specific case, but I hope that this issue might pique someone's curiosity, seems like a fun little bug to track down.

rapperskull commented 1 year ago

This happens because the directory containing that file is in sector 0, and extract-iso treats it as invalid. I fixed it and tomorrow I will make a PR.