From d1d7af4f603bcc17289f55c64d24ad86031cb6c4 Mon Sep 17 00:00:00 2001 From: Stephen Date: Tue, 27 Dec 2022 05:27:25 -0500 Subject: [PATCH] Sig fix+offsets, and flto --- CMakeLists.txt | 4 ++-- include/reclasses/CTFPlayerShared.hpp | 3 ++- src/core/interfaces.cpp | 6 +++--- src/hooks/CreateMove.cpp | 7 ++++--- src/prediction.cpp | 9 +++++---- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b52f9fb..007ab2bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,9 +163,9 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") endif() set(CMAKE_CXX_FLAGS_DEBUG "-march=native -rdynamic -ggdb -Og") if (Internal_Symbolized) - set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -ggdb -fvisibility=hidden -fvisibility-inlines-hidden") + set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -flto=auto -ggdb -fvisibility=hidden -fvisibility-inlines-hidden") else() - set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -s -fvisibility=hidden -fvisibility-inlines-hidden") + set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -flto=auto -s -fvisibility=hidden -fvisibility-inlines-hidden") endif() if (Force_CXX_23B) set(CMAKE_CXX_FLAGS "-std=gnu++2b ${CMAKE_CXX_FLAGS}") diff --git a/include/reclasses/CTFPlayerShared.hpp b/include/reclasses/CTFPlayerShared.hpp index dff0587c..7e2166cb 100644 --- a/include/reclasses/CTFPlayerShared.hpp +++ b/include/reclasses/CTFPlayerShared.hpp @@ -3,6 +3,7 @@ #include "reclasses.hpp" #include "e8call.hpp" +#define CTF_PLR_SHRD 6356 namespace re { @@ -12,7 +13,7 @@ public: // Convert IClientEntity to CTFPlayerShared inline static CTFPlayerShared *GetPlayerShared(IClientEntity *ent) { - return (CTFPlayerShared *) (((uintptr_t) ent) + 0x17cc); + return (CTFPlayerShared *) (((uintptr_t) ent) + CTF_PLR_SHRD); } inline static bool IsDominatingPlayer(CTFPlayerShared *self, int ent_idx) { diff --git a/src/core/interfaces.cpp b/src/core/interfaces.cpp index 6a8d0e00..58db1f74 100644 --- a/src/core/interfaces.cpp +++ b/src/core/interfaces.cpp @@ -15,7 +15,7 @@ #include #include - +#define GAME_PTR_OFFSET 11815160 // class ISteamFriends002; IVModelRender *g_IVModelRender = nullptr; @@ -164,8 +164,8 @@ void CreateInterfaces() uintptr_t sig = gSignatures.GetClientSignature("A3 ? ? ? ? C3 8D 74 26 00 B8 FF FF FF FF 5D A3 ? ? ? ? C3"); g_PredictionRandomSeed = *reinterpret_cast(sig + (uintptr_t) 1); - uintptr_t g_pGameRules_sig = gSignatures.GetClientSignature("C7 03 ? ? ? ? 89 1D ? ? ? ? 83 C4 14 5B 5D C3"); - rg_pGameRules = *reinterpret_cast(g_pGameRules_sig + 8); + uintptr_t g_pGameRules_sig = CSignature::GetClientSignature("55 89 E5 53 83 EC 14 8B 5D ? C7 44 24 ? ? ? ? ? 89 1C 24 E8 ? ? ? ? C7 03 ? ? ? ? C7 43 ?"); + rg_pGameRules = *reinterpret_cast(g_pGameRules_sig + GAME_PTR_OFFSET); } g_IMaterialSystem = BruteforceInterface("VMaterialSystem", sharedobj::materialsystem()); g_IMDLCache = BruteforceInterface("MDLCache", sharedobj::datacache()); diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp index 921a8e56..a088395f 100644 --- a/src/hooks/CreateMove.cpp +++ b/src/hooks/CreateMove.cpp @@ -15,7 +15,8 @@ #include "NavBot.hpp" #include "HookTools.hpp" #include "teamroundtimer.hpp" - +// Found in C_BasePlayer. It represents "m_pCurrentCommand" +#define CURR_CUSERCMD_PTR 4452 #include "HookedMethods.hpp" #include "nospread.hpp" #include "Warp.hpp" @@ -62,7 +63,7 @@ void RunEnginePrediction(IClientEntity *ent, CUserCmd *ucmd) } // Set Usercmd for prediction - NET_VAR(ent, 4188, CUserCmd *) = ucmd; + NET_VAR(ent, CURR_CUSERCMD_PTR, CUserCmd *) = ucmd; // Set correct CURTIME g_GlobalVars->curtime = g_GlobalVars->interval_per_tick * NET_INT(ent, netvar.nTickBase); @@ -78,7 +79,7 @@ void RunEnginePrediction(IClientEntity *ent, CUserCmd *ucmd) g_IGameMovement->FinishTrackPredictionErrors(reinterpret_cast(ent)); // Reset User CMD - NET_VAR(ent, 4188, CUserCmd *) = nullptr; + NET_VAR(ent, CURR_CUSERCMD_PTR, CUserCmd *) = nullptr; g_GlobalVars->frametime = frameTime; g_GlobalVars->curtime = curTime; diff --git a/src/prediction.cpp b/src/prediction.cpp index 974fac73..353c2d59 100644 --- a/src/prediction.cpp +++ b/src/prediction.cpp @@ -8,7 +8,8 @@ #include "navparser.hpp" #include #include - +// Found in C_BasePlayer. It represents "m_pCurrentCommand" +#define CURR_CUSERCMD_PTR 4452 namespace hacks::shared::aimbot { extern settings::Boolean engine_projpred; @@ -458,9 +459,9 @@ Vector EnginePrediction(CachedEntity *entity, float time, Vector *vecVelocity) // static Vector zerov{ 0, 0, 0 }; // CE_VECTOR(entity, netvar.m_angEyeAngles) = zerov; - CUserCmd *original_cmd = NET_VAR(ent, 4188, CUserCmd *); + CUserCmd *original_cmd = NET_VAR(ent, CURR_CUSERCMD_PTR, CUserCmd *); - NET_VAR(ent, 4188, CUserCmd *) = &fakecmd; + NET_VAR(ent, CURR_CUSERCMD_PTR, CUserCmd *) = &fakecmd; g_GlobalVars->curtime = g_GlobalVars->interval_per_tick * NET_INT(ent, netvar.nTickBase); g_GlobalVars->frametime = time; @@ -486,7 +487,7 @@ Vector EnginePrediction(CachedEntity *entity, float time, Vector *vecVelocity) oFinishMove(g_IPrediction, ent, &fakecmd, pMoveData.get()); g_IGameMovement->FinishTrackPredictionErrors(reinterpret_cast(ent)); - NET_VAR(ent, 4188, CUserCmd *) = original_cmd; + NET_VAR(ent, CURR_CUSERCMD_PTR, CUserCmd *) = original_cmd; g_GlobalVars->frametime = frameTime; g_GlobalVars->curtime = curTime;