an update request will occur...
also they may be needing to fix more..
I feel that within 24 hours likely this will all be back to normal from steam and you won't need any tools to use trainers with steam games at that point..
Steam only allowing a few dlls like punkbuster to load and crashing everything else sounds like an effect that's hard to make happen by accident. That said, I'm glad the steam thread made them think twice.
Whenever LoadLibraryA is called, GameOverlayRenderer does something like this:
HMODULE WINAPI LoadLibraryAHook(LPCSTR lpFileName)
if (strlen( lpFileName ) <= 9 || stricmp( &lpFileName[lengthOfSteamDLL - 10], "steam.dll" ))
lengthOfSteamDLL is 9. See the bug?
Temporary solution for Caliber/etc: When you allocate the space for the library name, allocate an extra byte, write the path to your DLL at allocated_memory+1, and pass that address to your RemoteLoadLibraryA (or whatever).
Had to make the code look a little funny due to emoticons.
[Edited by gibbed, 7/9/2013 7:34:18 PM]
this assessment may be the closest to the cause of the issue. No idea what the actual valve coding error is/was, but it seemed to not like trainers, memory searchers, or just about ANY .dll being injected into the game process..
thanks again gibbed..
btw, similar technique is used by multiplayer trainers to use d3d to do their dirty work.
I was not aware that software routinely hooks system api's. keep in mind that our trainers (ironically) we try desperately not to manipulate anything other than the game code, and will avoid that too if possible.
we won't be messing around with any steam .dll's. our solution was to remove the hook to the kernel32.dll api that steam created to begin with. likely this won't be necessary as valve themselves acknowledged a bug with unintended consequences and this will be fixed by steam soon.
[Edited by Caliber, 7/9/2013 7:32:17 PM]
philipla Just now
The function detouring that you’re seeing here is how the Steam overlay is implemented. The system calls are detoured in memory to modify functionality only for games launched through Steam, and the underlying Windows binaries on disk are never modified. The overlay has been implemented this way for years.
That looks like an extra byte for the trailing NULL in the string? What I was suggesting was adding an extra byte on top of that and writing your path and then passing allocated_memory+1 rather than allocated_memory+0 to your RemoteLoadLibraryA(). The crash occurs because it tries to pass &DllFileName[-1] to stricmp, which is not always a valid memory address.
Likely this bug will be fixed in the next Steam update that pushes a new GameOverlayRenderer build, so you can probably just bide your time and ignore this problem until it is.
[Edited by gibbed, 7/9/2013 7:41:00 PM]
* Updated game trainers and cheats daily
* Get notified when new cheats are added
* Request which games get new trainers
* Priority support with any problem