Welcome to Obscure Gamers

Join us now to get access to all our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, and so, so much more. It's also quick and totally free, so what are you waiting for?
Resource icon

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

No permission to download

burninrubber0

2020 Donator
2020 Donator
2019 Donator
VIP
Refugee
Registered
Joined
Jan 26, 2019
Messages
20
Reaction score
107
Points
28
Location
Earth, probably.
Website
youtube.com
AG User Name
burninrubber0
AG Join Date
Aug 16, 2016
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.
Code:
Attempts to find lost XEX fragments.
Usage:
  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:
                                16384)
      --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.
Code:
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.
Download: https://www.obscuregamers.com/resources/tool-for-finding-and-recovering-fragments-of-xex-files.6/
 
Last edited:
Top