A modern Rust implementation of UWPDumper for extracting files from sandboxed UWP (Universal Windows Platform) applications on Windows.
UWP applications (including Xbox Game Pass games) run in a sandboxed environment that restricts file access. uwpdumper-rs solves this by injecting a DLL into UWP processes that copies files from inside the sandbox to an accessible location.
Key concept: The tool injects into a running UWP process, gains access to the sandboxed package files, and copies them to the app's TempState folder (which is accessible from outside the sandbox).
- 🎮 Launch & Dump - Launch UWP apps and dump their files automatically
- 💉 Process Injection - Inject into running UWP processes by name or PID
- 📦 Package Discovery - List and search installed UWP packages
- 📊 Real-time Progress - Live progress bar with file counts
- ⚡ Parallel Extraction - Multi-threaded file copying with rayon
- 💾 Disk Space Check - Validates available space before dumping
- 📁 Long Path Support - Handles paths exceeding 260 characters
- 🔄 Error Recovery - Logs failed files and continues extraction
- 🔒 UWP Compatible - Proper ACL handling for UWP sandbox access
- Download the latest release and extract
- Find your game's package name:
uwpdumper --list - Dump the package:
uwpdumper --package YourGame - Find your files in:
%LOCALAPPDATA%\Packages\<PackageFamilyName>\AC\TempState\DUMP\
- Windows 10/11
- Administrator privileges (required for DLL injection)
Download the zip from GitHub Releases and extract. The zip contains:
uwpdumper.exe- CLI tooluwpdumper_payload.dll- Injected DLL (must be in same folder as exe)
cargo build --releaseThe output binaries will be in target/release/.
# First, find your game's package name
uwpdumper --list
# Launch and dump by package name (partial match works)
uwpdumper --package HaloWars# By process name
uwpdumper --name HaloWars2_WinAppDX12Final.exe
# By process ID
uwpdumper --pid 12345# Run without arguments to see a list of running UWP processes
uwpdumper# Copy dumped files to a custom location
uwpdumper --package HaloWars --output C:\Dumps\HaloWarsBy default, files are dumped to:
%LOCALAPPDATA%\Packages\<PackageFamilyName>\AC\TempState\DUMP\
This location is used because:
- The injected DLL runs inside the UWP sandbox
AC\TempState(Application Container TempState) is one of the few folders a sandboxed app can write to- It's also accessible from outside the sandbox
Use --output to copy files to a custom location after dumping.
The project consists of three crates:
| Crate | Description |
|---|---|
uwpdumper-cli |
Command-line interface for launching/injecting |
uwpdumper-payload |
DLL injected into target processes |
uwpdumper-shared |
Shared IPC protocol and message types |
- CLI creates shared memory with proper ACLs for UWP sandbox access
- CLI injects the payload DLL into the target process
- DLL scans the package directory and copies files to
TempState\DUMP - IPC communicates progress and status between CLI and DLL via ring buffer
- CLI optionally copies files to a custom output directory
┌─────────────────┐ IPC ┌─────────────────┐
│ uwpdumper.exe │◄────────────────────►│ payload.dll │
│ (CLI) │ Shared Memory │ (in UWP app) │
└─────────────────┘ └─────────────────┘
│ │
▼ ▼
User Output Package Files
& Progress → TempState/DUMP
| Option | Description |
|---|---|
-n, --name <NAME> |
Process name to inject into |
-p, --pid <PID> |
Process ID to inject into |
-l, --list |
List all installed UWP packages |
--package <NAME> |
Package name to launch and dump |
-o, --output <DIR> |
Custom output directory for dumped files |
MIT License - see LICENSE for details.
Contributions are welcome! Please feel free to submit issues and pull requests.
This tool is intended for legitimate purposes such as backup and modding. Use responsibly and in accordance with the terms of service of the applications you dump.