Xbox One:Dumping Games with Durango Dumplings v2
Ensure that your network is setup to prevent the Xbox from reaching the internet. It's recommended to block your Xbox's MAC addresses from accessing the WAN in your router settings, to turn off auto-updates, and to set the DNS setting on the Xbox to 127.0.0.1. |
This page will walk you through dumping Xbox One/Series games on a compatible firmware device.
Credit to InvoxiPlayGames/Emma and XboxOneResearch for most of these tools, BirdonWheels for the original guide which was used as the basis for this page, and burninrubber0 from the Xbox Scene Discord for the dump_gamesaves.bat script. A video tutorial can be found on KsAmJ Gaming & Tech's YouTube channel, though it does not use the pre-packaged dumping pack.
Dumping Games
Pre-requisites
- Xbox One / Series firmware version 4478, 4908, or 4909.
- A copy of Warhammer Vermintide 2:
- Digital copy will allow you to dump a disc OR digital game
- Disc copy will allow you to dump a digital game
- The game you are dumping must be installed on your Internal Storage.
- The game you are dumping must be able to be launched while offline.
- "Check your connection" - This error will show if it successfully launched, but the game requires an internet connection. These games can be dumped.
- "To start this game or app you need to be signed in to the Xbox network." - You do not have a valid license for the game. It either was purchased and never launched or an expired Game Pass game. You cannot dump these games.
- "Use this Xbox regularly? Make it your home Xbox so you can play games you own, even offline." - Displayed when you attempt to launch a game licensed to an account that does not have this Xbox set as the home Xbox. You cannot dump these games.
- Preferably connect your Xbox via ethernet, as Wi-Fi connections have been shown to drop files out of dumps.
PC Preparation
- Download the Xbox One Game Dumping Pack v2.0 and extract it to your PC. This contains everything you need to dump games except copyrighted files.
- Download the .NET 6.0.424 SDK x86_64 Binary for Windows and extract dotnet-sdk-6.0.424-win-x64.zip into the
\Copy to Flash Drive\dotnet\
folder. - Download PowerShell-7.2.3-win-x64.zip and extract the contents into the
\Copy to Flash Drive\pwsh\
folder. - Format a USB flash drive as NTFS and copy the contents of the
Copy to Flash Drive
folder to the root of your USB flash drive and safely eject the flash drive. - Open the htdocs folder and edit gamescript_autosave_network.txt. Replace
YOUR IP HERE
with the IP address of the PC you are going to run the exploit from. - Open the htdocs folder and edit gamescript_autosave.txt. Replace
YOUR IP HERE
with the IP address of the PC you are going to run the exploit from. - Open the TwoDump folder and open
stage2.lua
and make the following changes and save:- Replace
YOUR IP HERE
with the IP of your PC. - Replace the characters in targetXvdPath with the content id found earlier.
- Replace
Game Script Reverse Shell (SystemOS)
Perform the Collateral Damage Game Script exploit as detailed below to obtain a reverse shell.
- If you haven't already, launch Warhammer Vermintide 2, press A to start game, and choose "Use Offline". This will create a game save on your hard drive.
- Run miniweb.exe. If it asks for permissions to run, check both boxes and select "Allow Access". A command prompt window should open.
- Note the IP address and port listed, e.g.
192.168.1.77:8000
.
- Note the IP address and port listed, e.g.
- On your Xbox, open Microsoft Edge and enter the full IP address and port into the address bar (e.g.
192.168.1.77:8000
). It should list the files present in thehtdocs
folder on your PC. - Select
gamescript_autosave_network.txt
. It should display the contents of the script. Hover your cursor before the very first character, then hold A and drag the left stick down to highlight all of the text. Let go of A and then select "Copy" from the small menu that opens up. - Launch the Game Script app. Use the D-PAD to highlight "Paste code" and press A to paste the contents of the file you copied. Press B to close the keyboard.
- Double-click
gamescript_reverse_shell_remote.bat
. It will open a window for the server process with the last line being "Server listening..." and a second window running NetCat with the text "listening on [any] 7070 ...".- It may ask multiple times for permission to run on the network, check both boxes and select "Allow Access".
- On your Xbox, open the Game Script app if not already there. Hold X and press RB to select "Windows", then let go of X.
- Using the D-PAD, select "Show Code Run window" and press A. On the new window that pops up, highlight the "Run code once" button and press A.
- After about 10-60 seconds, some traffic will appear on the payload and NetCat command windows, and if successful, you will have a reverse shell on the NetCat command window to be able to run commands against the Xbox.
- If the Game Script app or the NetCat window closes, re-launch them and try again. If after multiple attempts it is still crashing, go to Settings > General > Power Options > Shutdown now, then turn your console back on and try again. It may take a few tries until it is successful, but the following steps will replace the entry method to make it successful every time.
- //////////////////////// STEPS TO ADD THE FILES ON CONSOLE IN THE GAMESCRIPT LOCAL DIR ///////////////////////////////
Modifying the Vermintide Game Save
These steps will guide you through modifying your Vermintide game save to be able to run the game dumper.
- In the reverse shell, enter the following commands:
set DOTNET_CLI_TELEMETRY_OPTOUT=1 D:\dotnet\dotnet.exe msbuild D:\mount_connectedstorage.xml
- The previous command will output the Harddisk# where your saves are located (e.g.
XVD Mounted to \\?\GLOBALROOT\Device\Harddisk16\Partition1
indicates it is on Harddisk16). The rest of this guide will use Harddisk16 as an example. - In the reverse shell, enter the following command, substituting your own Harddisk#, and your game saves and licenses will be dumped:
- When it completes, unplug your USB flash drive and plug it into your PC.
- On the flash drive, navigate to
\xb1\saves\connectedStorage\u_################_C05F0100-EAC5-49EB-943F-1A0E3C108361\
. This is your save for Warhammer Vermintide 2. Open the sole folder and there should be two files, one of them has a unique ID and the other is named "container". Open the unique ID file with notepad, delete all of the contents, and then paste the entire contents ofLuaFFI-CE\stage1.lua
into it and save. - Write down the path to this game save for future use, e.g.
\xb1\saves\connectedStorage\u_1111111111111111_C05F0100-EAC5-49EB-943F-1A0E3C108361\{AABBCCDD-EEFF-GGHH-IIJJ-KKLLMMNNOOPP}
. - Safely Eject your USB flash drive and plug it into your Xbox.
- In the reverse shell, enter the following command, substituting your own path, and type "All" when prompted to overwrite:
mklink /j T:\connectedStorage "\\?\GLOBALROOT\Device\Harddisk16\Partition1\" T: cd connectedStorage D:\dump_gamesaves.bat mkdir D:\Licenses copy S:\Clip D:\Licenses
copy D:\xb1\saves\connectedStorage\{AABBCCDD-EEFF-GGHH-IIJJ-KKLLMMNNOOPP} T:\connectedStorage\u_1111111111111111_C05F0100-EAC5-49EB-943F-1A0E3C108361\{AABBCCDD-EEFF-GGHH-IIJJ-KKLLMMNNOOPP}
Finding your License File
Digital Game
Follow this process if the game you are dumping is a digital game.
- On your PC, copy the contents of the
Licenses
folder from the flash drive into the\LicenseClipFinder\Clips\
folder. - Double click
run_license_clip_finder.bat
to start LicenseClipFinder. It will output a "Licenses.txt" file which will contain the content ID and license path associated with all of your games.- If you do not have a recent enough .NET version, it may prompt you with a link to download it from Microsoft. Install it and try again.
Disc Game
Follow this process if the game you are dumping is a disc-based game.
- In your the reverse shell, enter the following command:
type O:\MSXC\Metadata\catalog.js
- The content ID of the game will be listed, e.g.
7049126b-609b-4d08-b5cb-0d407e8dfec1
. It may be spaced out, so you will need to copy the value after "content ID" and remove the spaces. Note this information for later. - In your the reverse shell, enter the following command:
dir O:\Licenses\
- Note the name of the file it reports back, e.g.
O:\Licenses\License0.xml
. Note this license path for later.
Original Xbox or Xbox 360 Games
///////////////// TODO
Dumping your Game
The next steps will walk you through setting up the server that will receive the game dump(s).
- Reboot your Xbox. This is required to unlink
T:\connectedStorage
. - Double-click
warhammer_dump_game.bat
. It will open three command prompt windows.- It may ask multiple times for permission to run on the network, check both boxes and select "Allow Access".
- Launch Warhammer Vermintide 2 and press "A" on the title screen. If everything was done correctly, the game should freeze and you should see each command prompt window activate and files will start to be written to
.\TwoDump\tx\
.- If anything appears wrong, see the troubleshooting section below. You can always close Warhammer Vermintide 2 and re-open it, repeating this step.
- It's highly recommended to copy the contents of
.\TwoDump\tx\
to another folder and dump the game again. Afterwards, check the file size of both folders to make sure they exactly match, verifying that you had a good dump.
Troubleshooting
/////// CHECK IF THESE BEHAVIORS STILL APPLY
- Only one file is dumped:
- This occurs if you do not have a proper license for a game. It will dump a plaintext appxmanifest.xml successfully and then attempt to dump the next file but it will be 0 bytes and hang. If it's a disc based game, ensure that the disc is inserted and you configured prepare_gamedump.xml to point to the license on the disc (O: drive).
- The Xbox never connects to the PC:
- If no connection is ever made from your Xbox, check your firewall rules. If you only select "Private network" when prompted to add exclusions for the programs, double check that your network is set to Private instead of Public. Also check that your PC's IP address has not changed from what you configured in the text files.
- Check in your Xbox network settings to verify that it is set to "online" mode (i.e. you can see the "Go offline" button), as it will not communicate on your network otherwise.