Resource icon

Tool for finding and recovering fragments of XEX files 2020-07-24

No permission to download
This is not a one click utility. You will need to read the below to understand how to use it and whether it will work in your use case.

xex_fragment_finder is a command line tool created by Bo98 to find fragments of XEX files inside a disk image. At this time, it only supports XEX2 executables using both encryption and compression. Support for unencrypted or uncompressed files may be added at a later date.

This is not an easy program for beginners. You will likely need experience with hex, some knowledge of the FATX filesystem, and a little knowledge of XEX files.

Note the help page below. Anything listed as REQUIRED must be defined in your command; however, you will most likely also need to define image-offset-start and image-offset-end. Since this tool is only intended for searching along cluster boundaries, you must define these values as a multiple of 0x4000 away from the fragment start. This means if your XEX start offset ends in 0x5000, your image start/end offsets should end in 0x1000, 0x5000, 0x9000, or 0xD000. fragment-size will also likely need to be defined, but unless you know there's only one fragment and have the exact size of that fragment, it should be left as the default to start with.
Attempts to find lost XEX fragments.
  xex_fragment_finder [OPTION...]

  -i, --image arg               REQUIRED: Input image file to scan and
                                extract from.
  -f, --xex arg                 REQUIRED: Input XEX to find the fragment of.
  -o, --output arg              REQUIRED: The output directory to place
                                possibly valid XEX files from found fragments.
                                !!!THIS DIRECTORY WILL BE WIPED!!!
  -x, --xex-fragment-offset arg
                                REQUIRED: The offset of where the fragment
                                would go in the XEX. If there are multiple to
                                find, pick the first.
  -k, --key arg                 REQUIRED: The key to use for decryption. Pick
                                from: "dev" or "retail"
      --image-offset-start arg  The offset to start scanning the image from.
                                (default: 0)
      --image-offset-end arg    The offset to scan up to in the image.
                                (default: 18446744073709551615)
      --fragment-size arg       The size of the fragment to find. (default:
      --threads arg             The number of threads to use. (default: 16)
      --help                    Print help.
Below is an example command and output from a real recovery situation. In this case, the correct fragment was found and the incorrect data in the provided XEX file was replaced with it.
xex_fragment_finder.exe -i C:\HDD.img -f C:\FraggedXex\SpeedDebugOpt-enUS.xex -o C:\DefraggedXex -x 0x83C000 -k dev --image-offset-start 0x2B0EB0000 --image-offset-end 0x119FF90000 --threads 16
Loading XEX...
XEX loaded.

Thread 1: offsets 0x39fdc0000 to 0x48ecd0000
Thread 5: offsets 0x75ba00000 to 0x84a910000
Thread 4: offsets 0x66caf0000 to 0x75ba00000
Thread 10 found possible fragment at offset 0xcae040000
Thread 4 handling 0x66caf0000 to 0x75ba00000 finished processing after 27.47 seconds.
Thread 2 handling 0x48ecd0000 to 0x57dbe0000 finished processing after 27.58 seconds.
Thread 7 progress: 240000/244676 (98.09%)
Thread 7 handling 0x939820000 to 0xa28730000 finished processing after 27.75 seconds.
All threads finished.
First release
Last update
0.00 star(s) 0 ratings