striven-prevailed
2025-11-06 a22e4dfb0dfb042c80da9c44a3e5178f06cfc4d6
Describe UPlay R1, Spring
2 files renamed
4 files added
2 files deleted
55 ■■■■ changed files
01_general_information/02_game_settings.md patch | view | raw | blame | history
02_internals_of_hyperscape/01_entrypoint.md 26 ●●●● patch | view | raw | blame | history
02_internals_of_hyperscape/02_uplay_r1.md 11 ●●●●● patch | view | raw | blame | history
05_scapegoat/02_build_and_use_scapegoat.md 1 ●●●● patch | view | raw | blame | history
05_scapegoat/02_build_scapegoat.md 1 ●●●● patch | view | raw | blame | history
05_scapegoat/03_install_and_use_scapegoat.md 1 ●●●● patch | view | raw | blame | history
05_scapegoat/03_install_scapegoat.md 1 ●●●● patch | view | raw | blame | history
05_scapegoat/04_using_scapegoat.md 14 ●●●●● patch | view | raw | blame | history
01_general_information/02_game_settings.md
02_internals_of_hyperscape/01_entrypoint.md
File was renamed from 02_internals_of_hyperscape/01_game_files.md
@@ -1,4 +1,14 @@
# Internals of Hyperscape: Game Files
# Internals of Hyperscape: Entrypoint
## Information String
|  Property  |                     Value                    |
|------------|----------------------------------------------|
| Version    | `tucert_Y01S03_C6101049_D1004780_S6167_123`  |
| Built      | `Mon Mar 29 20:20:36 2021 UTC`               |
| Exeuctable | `scimitar_engine_win64_2017_flto_vulkan.exe` |
The information for this wiki concerns this version of HyperScape.
## `Hyperscape.exe`
@@ -21,15 +31,21 @@
| Certificate      | `WinAuth(2.0)[PKCS #7]`                                                                                                                          |
### Launching the Game
Because the game is normally distributed with BattlEye, the following game flags are required to pass into the executable: `-eac_launcher /belaunch -be` in order to mod the game.
Because the game is normally distributed with [BattlEye](https://www.battleye.com/), the following game flags are required to pass into the executable: `-eac_launcher /belaunch -be` in order to disable the anti-cheat in the game.
Currently, the only known way of launching the game and being able to attach debuggers and inject dynamic libraries is to use **LumaPlay**, which hijacks [UbiServices](../03_ubisoft_services/03_rest_endpoints.md) APIs to prevent usual restrictions like owning the game from preventing the launch.
The game also handles game license checks through [Ubisoft Connect](https://www.ubisoft.com/en-us/ubisoft-connect) (Formerly known as, and in the game files as, 'UPlay'). Check out the [uplay_r1](./02_uplay_r1.md) page for more information on how this works and how to bypass this restriction.
### Dumping Imports
The game executable is obfuscated with [VMProtect](https://vmpsoft.com/) v3.20-v3.5.0, but critical game functions are not.
A tool like [VMP3 Import Fix](https://github.com/KuNgia09/vmp3-import-fix) can be used to dynamically fix imports and export a much more manageable executable for reverse-engineering with a decompiler like IDA or Ghidra.
Note that many lower level functions and especially IO-related procedures remain obfuscated.
### Debug Builds
No debug builds are currently known of the game itself, however debug builds and PDBs of libraries like RendezVous have been leaked and have been instrumental in further understanding the game.
> [!NOTE]
> TODO: Explain further
### Client Modifications
The game has additional protections against using [`VirtualProtect`](https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect) (Although, earlier versions of the game, for example from Season 1, appear to have this protection removed).
Bypassing this restriction either involves using `VirtualProtect` from an external process to mark all pages as writable and executable, or removing this protection entirely by running code before the game starts.
02_internals_of_hyperscape/02_uplay_r1.md
New file
@@ -0,0 +1,11 @@
# Internals of Hyperscape: UPlay R1
UPlay R1 is Ubisoft's own legacy license checker and interface for Ubisoft's friend, party and chat services.
The game loads a library called `uplay_r1_loader.dll`, which finds `uplay_r1.dll` in the user's local installation of Ubisoft Connect (formerly UPlay). If this DLL cannot be found, the game exits and suggests for the user to ensure that UPlay is installed.
> [!IMPORTANT] For `64-bit` devices, `uplay_r164_loader.dll` is loaded instead, and searches for `uplay_r164.dll`!
## Bypassing UPlay R1
- [Spring](../05_scapegoat/04_using_scapegoat.md) - Scapegoat's own UPlay R1 launcher and plugin loader, specifically for Hyperscape.
- [LumaPlay](https://cs.rin.ru/forum/viewtopic.php?f=29&t=67197)
05_scapegoat/02_build_and_use_scapegoat.md
File was deleted
05_scapegoat/02_build_scapegoat.md
New file
@@ -0,0 +1 @@
# Scapegoat: Build Scapegoat
05_scapegoat/03_install_and_use_scapegoat.md
File was deleted
05_scapegoat/03_install_scapegoat.md
New file
@@ -0,0 +1 @@
# Scapegoat: Install Scapegoat
05_scapegoat/04_using_scapegoat.md
New file
@@ -0,0 +1,14 @@
# Scapegoat: Using Scapegoat
Scapegoat can be installed by using the Spring launcher, which should be placed alongside the game executable:
- `Hyperscape.exe`
- `SpringLauncher.exe`
- `Spring/`
  - `Spring.dll`
  - `Plugins/`
    - `Patsy.dll`
> [!NOTE] _Patsy_ is Scapegoat's client modification.
Then, running `SpringLauncher` should launch the game and connect to Scapegoat's servers.