Commit Graph

7 Commits (e2fc546d6991d6c45a91db991029b7d412758408)

Author SHA1 Message Date
Peter Repukat e3a49db9a9 Revert "EnforceBindingDLL: EXPERIMENTAL: Disable LizardMode"
This reverts commit 30795a1ae0.
7 years ago
Peter Repukat 30795a1ae0 EnforceBindingDLL: EXPERIMENTAL: Disable LizardMode 7 years ago
Peter Repukat 38ba58ffa9 EnforceBindings: Generalized hooking function
Now I shouldn't have to patch GloSC as often...

 * In the function we want to hook the appID of the Chord bindings get referenced,
  it takes 3 arguments (we can get that from the function prolog)
  and it is the only one that does both. (in steamclient.dll)
  
  We search for the constant appID of SteamChard bindings
  move a bit upward and search for the correct function prolog

The function-prolog of the hooked function, get replaced with a jump to our hook
Our hook, then executed the missing function prolog,
patches the second function argument on the stack
and jumps back to let Steam do the rest for us :)
7 years ago
Peter Repukat e77529137d Include new hook for newer Steam versions 7 years ago
Peter Repukat 105287ecd4 EnforceDLL: Add second hook for newer Steam versions 7 years ago
Peter Repukat 3dbd4de39a fix: SteamTarget not beeing updated 8 years ago
Peter Repukat 7947d6faac Enforce non desktop bindings:
done by mid function hooking a function in steamclient.dll
the function appears to be setting the appId of the new controller bindings

inject/hook right after the target launched
switch focus -> binding gets changed to shortcut bindings -> hook function grabs appid
hook function replaces desktop-config appid with the one grabbed everytime steam tries to active desktop-config
glosc_gamelauncher unloads dll when the target closes; unloading dll patches steamclient.dll back to original
8 years ago