From dc0934d29caacc8da1e7df8b775d24b4e99c381c Mon Sep 17 00:00:00 2001 From: Emma Miler Date: Tue, 4 Oct 2022 00:09:44 +0200 Subject: [PATCH] Clear token when not needed anymore (#282) Also blocks migrateme --- NorthstarDLL/clientauthhooks.cpp | 18 ++++++++++++++++++ NorthstarDLL/exploitfixes.cpp | 2 ++ 2 files changed, 20 insertions(+) diff --git a/NorthstarDLL/clientauthhooks.cpp b/NorthstarDLL/clientauthhooks.cpp index cdabf7f2..3235e6cd 100644 --- a/NorthstarDLL/clientauthhooks.cpp +++ b/NorthstarDLL/clientauthhooks.cpp @@ -15,6 +15,11 @@ const int NOT_DECIDED_TO_SEND_TOKEN = 0; const int AGREED_TO_SEND_TOKEN = 1; const int DISAGREED_TO_SEND_TOKEN = 2; +typedef char* (*Auth3PTokenType)(); +Auth3PTokenType Auth3PToken; + +char* token_location = 0x0; + void AuthWithStryderHook(void* a1) { // game will call this forever, until it gets a valid auth key @@ -33,6 +38,17 @@ void AuthWithStryderHook(void* a1) AuthWithStryder(a1); } +char* Auth3PTokenHook() +{ + if (g_MasterServerManager->m_sOwnClientAuthToken[0] != 0) + { + memset(token_location, 0x0, 1024); + strcpy(token_location, "Protocol 3: Protect the Pilot"); + } + + return Auth3PToken(); +} + void InitialiseClientAuthHooks(HMODULE baseAddress) { // this cvar will save to cfg once initially agreed with @@ -44,4 +60,6 @@ void InitialiseClientAuthHooks(HMODULE baseAddress) HookEnabler hook; ENABLER_CREATEHOOK(hook, (char*)baseAddress + 0x1843A0, &AuthWithStryderHook, reinterpret_cast(&AuthWithStryder)); + ENABLER_CREATEHOOK(hook, (char*)baseAddress + 0x183760, &Auth3PTokenHook, reinterpret_cast(&Auth3PToken)); + token_location = (char*)baseAddress + 0x13979D80; } diff --git a/NorthstarDLL/exploitfixes.cpp b/NorthstarDLL/exploitfixes.cpp index aa5adae3..0aa0a3bf 100644 --- a/NorthstarDLL/exploitfixes.cpp +++ b/NorthstarDLL/exploitfixes.cpp @@ -548,6 +548,8 @@ void ExploitFixes::LoadCallback_Full(HMODULE baseAddress) ns_exploitfixes_log = new ConVar("ns_exploitfixes_log", "1", FCVAR_GAMEDLL, "Whether to log whenever exploitfixes.cpp blocks/corrects something"); + g_pCVar->FindCommand("migrateme")->m_nFlags &= ~FCVAR_SERVER_CAN_EXECUTE; + HookEnabler hook; ENABLER_CREATEHOOK(hook, (char*)baseAddress + 0x2a8a50, &GetEntByIndexHook, reinterpret_cast(&GetEntByIndex)); }