github Reloaded-Project/Reloaded-II 1.10.0
Steam Stub DRM Bypass & Bootstrapper Improvements | 1.10.0

latest releases: 1.27.11, 1.27.10, 1.27.9...
2 years ago

Changelog | 1.10.0 - 2021-07-23

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.

Additions

Support for Steam Stub DRM Bypass & Integrated SteamHook 0bb5e39

Reloaded now has an experimental feature allowing for games encrypted with the Steam Embedded DRM ("Steam Stub") to be natively supported.

Steam Embedded DRM modifies the game EXE such that it is encrypted at load time and only decrypted when the game code starts running, which previously was problematic as this meant that mods which modify game code would not work without an external workaround such as Steamless or Ultimate ASI Loader. This was because by design, Reloaded makes mods initialize before any game code is executed.

SteamStubBypass

Now, if Reloaded detects Steam Embedded DRM, it will hook many commonly used APIs (and then unhook), hoping that it allows mods to be loaded as early in the game's startup sequence as possible once the EXE has been decrypted.

In addition, the popular SteamHook mod which allows you to boot Steam games without the games restarting themselves has been directly integrated with Reloaded. This was necessary for the implementation of the former feature. The legacy SteamHook shouldn't conflict with the new SteamHook; however is now redundant.

*Experimental: Tested with Yakuza Kiwami, Sonic Adventure 2, No Man's Sky and Denuvo-less Persona 4 Golden.

Recognize Injection from External Source a763ce6

ExternalSourceDetection

Reloaded now recognizes when it has been injected from an external source, such as ASI Loader or foreign mod loader.

Please note that the Steam Embedded DRM Bypass feature listed, as Reloaded assumes that the mod loader or program which injected Reloaded already handles this problem.

Bootstrapper now compiles to a single DLL. 4ea4385

SingleFile

This should make the bootstrapper a bit easier to carry around.

I originally wanted it to be this way, but before it was a bit more non-trivial to do. However with the upcoming .NET 6, Microsoft now also ships the components necessary to set up .NET Core from C++ as static libraries.

Bootstrapper Self Updating, Version Detection & Version Information

  • Bootstrapper Version Details 0687066
  • Auto Update Reloaded Bootstrapper in ASI Loader Deployments de4dc7d
  • Message Box Showing Updated Bootstrappers d3d06b8

Reloaded is only around 99% C#; that remaining 1% is some C++ code used to start the .NET Core Runtime in a native process and set up Reloaded. In addition, the Bootstrapper is often used to integrate Reloaded with other mod loaders, such as Ultimate ASI Loader.

While the bootstrapper itself is very, very rarely updated, there are extremely rare times at which it does need to be updated; such as when adding features like recognising injection from external sources (see above). Keeping track of outdated bootstrappers, especially when users are able to use the bootstrapper with any arbitrary DLL Injector or copy it anywhere they like is a difficult task; and end users would be typically unaware of when the bootstrapper is updated.

OutdatedBootstrapper
(It also detects bootstrappers missing version information, like this one)

As such, version information was added to every new bootstrapper DLL file, and the bootstrapper version is always checked during Reloaded's initialisation time. In this way, Reloaded is now able to inform the user when an outdated bootstrapper is used.

DllDetails

In addition, any Reloaded Bootstrapper deployed using Reloaded's own Deploy ASI Loader feature, will now automatically be updated when the launcher is first booted.

AsiLoaderUpdate

Miscellaneous

  • Added: Version check for Bootstrapper e2dbc6c
  • Added: Minor text to Delayed Initialization (Steam Stub) 2a8cb18
  • Fixed: Bad Indents in .csproj left over by VisualStudio 30e5e0d

Code Cleanup

  • Changed: Refactor ProcessExitHook ba69a4c
  • Changed: Minor Cleanup of Logging Calls f742503
  • Changed: Minor Refactor of AsiLoaderDeployer f1984b6
  • Changed: Refactor EntryPointParameters into Reloaded.Mod.Shared dd72df6

Fixes

  • Changed: Official Server Endpoints in Documentation ahead of VPS Change 119474d
  • Changed: Standardized Logging Colours 23e68d0

Don't miss a new Reloaded-II release

NewReleases is sending notifications on new releases.