From 3585cba59de187e5ee946421b297709217d1b44a Mon Sep 17 00:00:00 2001 From: TotallyNotElite <1yourexperiment@protonmail.com> Date: Mon, 6 May 2019 18:35:36 +0200 Subject: [PATCH] Don't use signatures to get steampipe --- src/core/interfaces.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/core/interfaces.cpp b/src/core/interfaces.cpp index 98ee9e8c..e8238c66 100644 --- a/src/core/interfaces.cpp +++ b/src/core/interfaces.cpp @@ -80,6 +80,7 @@ template T *BruteforceInterface(std::string name, sharedobj::Shared return nullptr; } +extern "C" typedef HSteamPipe (*GetHSteamPipe_t)(); extern "C" typedef HSteamUser (*GetHSteamUser_t)(); void CreateInterfaces() @@ -94,24 +95,24 @@ void CreateInterfaces() g_IBaseClient = BruteforceInterface("VClient", sharedobj::client()); g_ITrace = BruteforceInterface("EngineTraceClient", sharedobj::engine()); g_IInputSystem = BruteforceInterface("InputSystemVersion", sharedobj::inputsystem()); - uintptr_t steampipe_sig = gSignatures.GetSteamAPISignature("8D 83 ? ? ? ? 89 34 24 89 44 24 ? E8 ? ? ? ? 89 C6") + 0xE7; - typedef HSteamPipe (*GetSteamPipe)(); - GetSteamPipe GetSteamPipe_fn = GetSteamPipe(steampipe_sig); - HSteamPipe sp = GetSteamPipe_fn(); + + logging::Info("Initing SteamAPI"); + GetHSteamPipe_t GetHSteamPipe = reinterpret_cast(dlsym(sharedobj::steamapi().lmap, "SteamAPI_GetHSteamPipe")); + HSteamPipe sp = GetHSteamPipe(); if (!sp) { - logging::Info("Creating new Steam Pipe..."); + logging::Info("Connecting to Steam User"); sp = g_ISteamClient->CreateSteamPipe(); } - logging::Info("Inited Steam Pipe"); - GetHSteamUser_t func = reinterpret_cast(dlsym(sharedobj::steamapi().lmap, "SteamAPI_GetHSteamUser")); - HSteamUser su = func(); + GetHSteamUser_t GetHSteamUser = reinterpret_cast(dlsym(sharedobj::steamapi().lmap, "SteamAPI_GetHSteamUser")); + HSteamUser su = GetHSteamUser(); if (!su) { logging::Info("Connecting to Steam User"); su = g_ISteamClient->ConnectToGlobalUser(sp); } - logging::Info("Inited Steam User"); + logging::Info("Inited SteamAPI"); + g_IVModelRender = BruteforceInterface("VEngineModel", sharedobj::engine(), 16); g_ISteamFriends = nullptr; g_IEngineVGui = BruteforceInterface("VEngineVGui", sharedobj::engine());