mirror of https://github.com/acidicoala/SmokeAPI
[WIP] Koalageddon mode
parent
5afdd59044
commit
5d1abc6498
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CMakeSharedSettings">
|
||||
<configurations>
|
||||
<configuration PROFILE_NAME="Debug [32]" ENABLED="true" GENERATION_DIR="build/32" CONFIG_NAME="Debug" TOOLCHAIN_NAME="Visual Studio 2022 [x86]" GENERATION_OPTIONS="-G "Visual Studio 17 2022" -A Win32" />
|
||||
<configuration PROFILE_NAME="Debug [64]" ENABLED="true" GENERATION_DIR="build/64" CONFIG_NAME="Debug" TOOLCHAIN_NAME="Visual Studio 2022 [amd64]" GENERATION_OPTIONS="-G "Visual Studio 17 2022" -A x64" />
|
||||
<configuration PROFILE_NAME="Relase [64]" ENABLED="false" GENERATION_DIR="build/64/release" CONFIG_NAME="Release" TOOLCHAIN_NAME="Visual Studio 2022 [amd64]" GENERATION_OPTIONS="-G "Visual Studio 17 2022" -A x64" />
|
||||
</configurations>
|
||||
</component>
|
||||
</project>
|
@ -1 +1 @@
|
||||
Subproject commit a1a8661947cc3260ed217ec75fb8cf15825cdf6e
|
||||
Subproject commit 67545f50bc9e557eaf43a74395cc1461416d0035
|
@ -0,0 +1,49 @@
|
||||
#include <smoke_api/smoke_api.hpp>
|
||||
#include <steam_functions/steam_functions.hpp>
|
||||
|
||||
#include <koalabox/hook.hpp>
|
||||
|
||||
#pragma warning(disable: 4731) // 'ebp' modified by inline assembly...
|
||||
|
||||
using namespace smoke_api;
|
||||
|
||||
DLL_EXPORT(void) Log_Interface(const char* interface_name, const char* function_name) {
|
||||
void***** parent_ebp;
|
||||
|
||||
__asm mov parent_ebp, ebp
|
||||
|
||||
auto* interface_address = *((*parent_ebp)[2]);
|
||||
|
||||
if (util::strings_are_equal(interface_name, "IClientAppManager")) {
|
||||
if (util::strings_are_equal(function_name, "IsAppDlcInstalled")) {
|
||||
auto* function_address = interface_address[0x8]; // TODO: Un-hardcode
|
||||
logger->debug("{} -> {}::{} @ {}", __func__, interface_name, function_name, function_address);
|
||||
}
|
||||
} else if (util::strings_are_equal(interface_name, "IClientApps")) {
|
||||
if (util::strings_are_equal(function_name, "BGetDLCDataByIndex")) {
|
||||
auto* function_address = interface_address[0x9]; // TODO: Un-hardcode
|
||||
logger->debug("{} -> {}::{} @ {}", __func__, interface_name, function_name, function_address);
|
||||
} else if (util::strings_are_equal(function_name, "GetDLCCount")) {
|
||||
auto* function_address = interface_address[0x8]; // TODO: Un-hardcode
|
||||
logger->debug("{} -> {}::{} @ {}", __func__, interface_name, function_name, function_address);
|
||||
}
|
||||
} else if (util::strings_are_equal(interface_name, "IClientInventory")) {
|
||||
if (util::strings_are_equal(function_name, "GetResultItems")) {
|
||||
auto* function_address = interface_address[0x2]; // TODO: Un-hardcode
|
||||
logger->debug("{} -> {}::{} @ {}", __func__, interface_name, function_name, function_address);
|
||||
}
|
||||
} else if (util::strings_are_equal(interface_name, "IClientUser")) {
|
||||
if (util::strings_are_equal(function_name, "IsSubscribedApp")) {
|
||||
auto* function_address = interface_address[0xB5]; // TODO: Un-hardcode
|
||||
logger->debug("{} -> {}::{} @ {}", __func__, interface_name, function_name, function_address);
|
||||
}
|
||||
} else if (util::strings_are_equal(interface_name, "IClientUtils")) {
|
||||
if (util::strings_are_equal(function_name, "GetAppID")) {
|
||||
auto* function_address = interface_address[0x12]; // TODO: Un-hardcode
|
||||
logger->debug("{} -> {}::{} @ {}", __func__, interface_name, function_name, function_address);
|
||||
}
|
||||
}
|
||||
|
||||
GET_ORIGINAL_FUNCTION(Log_Interface)
|
||||
Log_Interface_o(interface_name, function_name);
|
||||
}
|
Loading…
Reference in New Issue