Don't use signatures to get steampipe
This commit is contained in:
parent
aec16604c2
commit
3585cba59d
@ -80,6 +80,7 @@ template <typename T> 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<IBaseClientDLL>("VClient", sharedobj::client());
|
||||
g_ITrace = BruteforceInterface<IEngineTrace>("EngineTraceClient", sharedobj::engine());
|
||||
g_IInputSystem = BruteforceInterface<IInputSystem>("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<GetHSteamPipe_t>(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<GetHSteamUser_t>(dlsym(sharedobj::steamapi().lmap, "SteamAPI_GetHSteamUser"));
|
||||
HSteamUser su = func();
|
||||
GetHSteamUser_t GetHSteamUser = reinterpret_cast<GetHSteamUser_t>(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<IVModelRender>("VEngineModel", sharedobj::engine(), 16);
|
||||
g_ISteamFriends = nullptr;
|
||||
g_IEngineVGui = BruteforceInterface<IEngineVGui>("VEngineVGui", sharedobj::engine());
|
||||
|
Reference in New Issue
Block a user