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 1/2] 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()); From ddb12a1b1236127737fd91055b73cd7145c778ff Mon Sep 17 00:00:00 2001 From: TotallyNotElite <1yourexperiment@protonmail.com> Date: Mon, 6 May 2019 18:50:48 +0200 Subject: [PATCH 2/2] Update and install-all fixes Allows update script to create the build folder Allows install-all to properly select "latest" git tag --- install-all | 6 +++--- update | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/install-all b/install-all index c680fd82..a41856c1 100755 --- a/install-all +++ b/install-all @@ -19,14 +19,14 @@ fi # Update cathook # -git fetch --depth 1 origin && git reset --hard latest # pull changes from github +git fetch --force --depth 1 origin refs/tags/latest:refs/tags/latest && git reset --hard latest # pull changes from github git submodule update --depth 1 --init --recursive # update/init submodules # # Build cathook # -mkdir build;cd build #create a directory for building cathook +mkdir -p ./build; pushd build #create a directory for building cathook cmake ..;make -j$(grep -c '^processor' /proc/cpuinfo) # create makefile and build using all available threads sudo make data # create /opt/cathook/data -cd ..; cd .. +popd; cd .. diff --git a/update b/update index 425ed32a..9d210839 100755 --- a/update +++ b/update @@ -3,14 +3,17 @@ if [ $EUID == 0 ]; then echo -e "\033[1;31m\nThis script must not be run as root\n\033[0m" exit 1 fi -#Get updated source code + +# Get updated source code if [ "$(git rev-parse --is-shallow-repository)" == "true" ]; then git fetch --force --depth 1 origin refs/tags/latest:refs/tags/latest && git reset --hard latest && git submodule update --depth 1 --init --recursive || { echo -e "\033[1;33m\nFailed to pull from github! Trying alternative pull (legacy)\n\033[0m"; git fetch --depth 1 && git reset --hard @{upstream} && git submodule update --depth 1 --init --recursive || { echo -e "\033[1;31m\nFailed to pull from github! A reinstall is recommended. https://github.com/nullworks/cathook\n\033[0m"; exit 1; } } else echo -e "\033[1;33m\nWarning! Running in developer mode! Expect issues!\n\033[0m" && git pull origin && git submodule update --init --recursive || { echo -e "\033[1;31m\n\nFailed to pull from github!\n\033[0m"; exit 1; } fi -#Update cathook +#Create build folder in case it doesn't exist +mkdir -p ./build +# Update cathook cd build && cmake .. && cmake --build . --target cathook -- -j$(grep -c '^processor' /proc/cpuinfo) || { echo -e "\033[1;31m \n \nFailed to compile cathook\n\033[0m"; exit 1; } -#Update data +# Update data sudo cmake --build . --target data || { echo -e "\033[1;31m\nFailed to update /opt/cathook/data directory\n\033[0m"; exit 1; } echo -e "\n\033[1;34mCathook updated successfully\n\033[0m"