2022-04-16 00:30:46 +02:00
|
|
|
#ifndef LAUNCHER_H
|
|
|
|
#define LAUNCHER_H
|
|
|
|
|
2024-04-03 01:34:25 +02:00
|
|
|
// NOTE: cannot hook this! this function is hooked by loader.dll and is also
|
|
|
|
// used to gracefully shutdown the SDK.
|
2023-07-02 23:01:29 +02:00
|
|
|
inline int(*v_LauncherMain)(HINSTANCE hInstance);
|
2024-04-03 01:34:25 +02:00
|
|
|
|
2023-07-02 23:01:29 +02:00
|
|
|
inline LONG(*v_TopLevelExceptionFilter)(EXCEPTION_POINTERS* pExceptionPointer);
|
2023-11-26 13:21:20 +01:00
|
|
|
inline void(*v_RemoveSpuriousGameParameters)(void);
|
2022-04-16 00:30:46 +02:00
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
2022-05-13 14:53:25 +02:00
|
|
|
class VLauncher : public IDetour
|
2022-04-16 00:30:46 +02:00
|
|
|
{
|
|
|
|
virtual void GetAdr(void) const
|
|
|
|
{
|
2024-01-02 15:21:36 +01:00
|
|
|
LogFunAdr("LauncherMain", v_LauncherMain);
|
|
|
|
LogFunAdr("TopLevelExceptionFilter", v_TopLevelExceptionFilter);
|
|
|
|
LogFunAdr("RemoveSpuriousGameParameters", v_RemoveSpuriousGameParameters);
|
2022-04-16 00:30:46 +02:00
|
|
|
}
|
2022-04-18 03:35:08 +02:00
|
|
|
virtual void GetFun(void) const
|
|
|
|
{
|
2024-01-02 15:21:36 +01:00
|
|
|
g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 8B C8 E8 ?? ?? ?? ?? CC").FollowNearCallSelf().GetPtr(v_LauncherMain);
|
|
|
|
g_GameDll.FindPatternSIMD("40 53 48 83 EC 20 48 8B 05 ?? ?? ?? ?? 48 8B D9 48 85 C0 74 06").GetPtr(v_TopLevelExceptionFilter);
|
|
|
|
g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 81 EC ?? ?? ?? ?? 33 ED 48 8D 3D ?? ?? ?? ??").GetPtr(v_RemoveSpuriousGameParameters);
|
2022-04-18 03:35:08 +02:00
|
|
|
}
|
2022-04-16 00:30:46 +02:00
|
|
|
virtual void GetVar(void) const { }
|
|
|
|
virtual void GetCon(void) const { }
|
2023-11-26 13:21:20 +01:00
|
|
|
virtual void Detour(const bool bAttach) const;
|
2022-04-16 00:30:46 +02:00
|
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#endif // LAUNCHER_H
|