2021-12-25 22:36:38 +01:00
|
|
|
#pragma once
|
|
|
|
|
2023-07-02 23:01:29 +02:00
|
|
|
inline void(*EbisuSDK_Tier0_Init)(void);
|
|
|
|
inline void(*EbisuSDK_CVar_Init)(void);
|
|
|
|
inline void(*EbisuSDK_SetState)(void);
|
2021-12-25 22:36:38 +01:00
|
|
|
|
2022-08-18 02:15:23 +02:00
|
|
|
inline uint64_t* g_NucleusID = nullptr;
|
2023-01-25 02:30:54 +01:00
|
|
|
inline char* g_NucleusToken = nullptr; /*SIZE = 1024*/
|
2022-08-22 03:53:38 +02:00
|
|
|
inline char* g_OriginAuthCode = nullptr; /*SIZE = 256*/
|
2023-01-25 02:30:54 +01:00
|
|
|
inline int* g_OriginErrorLevel = nullptr;
|
2023-02-04 00:39:34 +01:00
|
|
|
inline bool* g_EbisuSDKInit = nullptr;
|
|
|
|
inline bool* g_EbisuProfileInit = nullptr;
|
2022-04-09 02:18:57 +02:00
|
|
|
|
2021-12-25 22:36:38 +01:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
void HEbisuSDK_Init();
|
2023-03-31 22:37:53 +02:00
|
|
|
bool IsOriginInitialized();
|
2023-07-19 02:16:06 +02:00
|
|
|
bool IsValidPersonaName(const char* pszName, int nMinLen, int nMaxLen);
|
2021-12-25 22:36:38 +01:00
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
2022-05-13 14:53:25 +02:00
|
|
|
class VEbisuSDK : public IDetour
|
2021-12-25 22:36:38 +01:00
|
|
|
{
|
2022-04-11 01:44:30 +02:00
|
|
|
virtual void GetAdr(void) const
|
2021-12-25 22:36:38 +01:00
|
|
|
{
|
2024-01-02 15:21:36 +01:00
|
|
|
LogFunAdr("EbisuSDK_Tier0_Init", EbisuSDK_Tier0_Init);
|
|
|
|
LogFunAdr("EbisuSDK_CVar_Init", EbisuSDK_CVar_Init);
|
|
|
|
LogFunAdr("EbisuSDK_SetState", EbisuSDK_SetState);
|
|
|
|
LogVarAdr("g_NucleusID", g_NucleusID);
|
|
|
|
LogVarAdr("g_NucleusToken", g_NucleusToken);
|
|
|
|
LogVarAdr("g_OriginAuthCode", g_OriginAuthCode);
|
|
|
|
LogVarAdr("g_OriginErrorLevel", g_OriginErrorLevel);
|
|
|
|
LogVarAdr("g_EbisuProfileInit", g_EbisuProfileInit);
|
|
|
|
LogVarAdr("g_EbisuSDKInit", g_EbisuSDKInit);
|
2021-12-25 22:36:38 +01: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("48 83 EC 28 80 3D ?? ?? ?? ?? ?? 0F 85 ?? 02 ?? ?? 48 89 5C 24 20").GetPtr(EbisuSDK_Tier0_Init);
|
|
|
|
g_GameDll.FindPatternSIMD("40 57 48 83 EC 40 83 3D").GetPtr(EbisuSDK_CVar_Init);
|
|
|
|
g_GameDll.FindPatternSIMD("48 81 EC ?? ?? ?? ?? 80 3D ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 80 3D ?? ?? ?? ?? ?? 74 5B").GetPtr(EbisuSDK_SetState);
|
2022-04-18 03:35:08 +02:00
|
|
|
}
|
|
|
|
virtual void GetVar(void) const
|
|
|
|
{
|
2024-01-02 15:21:36 +01:00
|
|
|
g_NucleusID = CMemory(EbisuSDK_CVar_Init).Offset(0x20).FindPatternSelf("4C 89 05", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).RCast<uint64_t*>();
|
|
|
|
g_NucleusToken = CMemory(EbisuSDK_SetState).Offset(0x1EF).FindPatternSelf("80 3D", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x2, 0x7).RCast<char*>();
|
|
|
|
g_OriginAuthCode = CMemory(EbisuSDK_SetState).Offset(0x1BF).FindPatternSelf("0F B6", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x3, 0x7).RCast<char*>();
|
|
|
|
g_OriginErrorLevel = CMemory(EbisuSDK_SetState).Offset(0x20).FindPatternSelf("89 05", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x2, 0x6).RCast<int*>();
|
|
|
|
g_EbisuProfileInit = CMemory(EbisuSDK_CVar_Init).Offset(0x12A).FindPatternSelf("C6 05", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x2, 0x7).RCast<bool*>();
|
|
|
|
g_EbisuSDKInit = CMemory(EbisuSDK_Tier0_Init).Offset(0x0).FindPatternSelf("80 3D", CMemory::Direction::DOWN, 150).ResolveRelativeAddressSelf(0x2, 0x7).RCast<bool*>();
|
2022-04-18 03:35:08 +02:00
|
|
|
}
|
2022-04-11 01:44:30 +02:00
|
|
|
virtual void GetCon(void) const { }
|
2023-11-26 13:21:20 +01:00
|
|
|
virtual void Detour(const bool bAttach) const { }
|
2021-12-25 22:36:38 +01:00
|
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|