You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The hooking SML is using is just c/c++ function hooking, as Unreal Engine is c++. Theoretically, that can be used on any executable, but you need to know the location of functions in memory, which is difficult.
For general c++ executables, and UE games, you only have a .exe, which provides no information about where functions are located, so to figure that out you need very good reverse engineering skills, and it needs to be done on an exe by exe basis, so if the game updates, everything breaks.
What's different about Satisfactory is that it provides PDBs, which normally are used to determine the call stack when a crash happens, but they can also be used in the other direction, to find a function address based on the name. That's what SML v1 used. The trouble there is that many functions may be stripped, or inlined, which makes C++ modding in general harder, but also hooking, as methods might suddenly disappear and be embedded into the place they are called from.
With some Update, at our request, Coffee Stain enabled modular build, which means each Unreal Engine module is a dll on its own. This means that all functions are exported, so their address can be natively found by the linker, and also that no function can be inlined.
Modular builds also enable the native Unreal Engine mod support (i.e., loading mod plugins from the Mods folder)
TL;DR; Yes, it can be applied to other games, but only if they supply PDBs or use a modular build, otherwise you can't reliably do it
https://discord.com/channels/555424930502541343/601030071221878784/1236300128932069417
The text was updated successfully, but these errors were encountered: