diff --git a/KoalaBox b/KoalaBox index 4df80fd..074f886 160000 --- a/KoalaBox +++ b/KoalaBox @@ -1 +1 @@ -Subproject commit 4df80fd10fcebe003dff9e15e22ac819d41dfd79 +Subproject commit 074f88648359aab954fe51ae9d5cb8a9051ab123 diff --git a/src/smoke_api/smoke_api.cpp b/src/smoke_api/smoke_api.cpp index 4693b5d..2692c1b 100644 --- a/src/smoke_api/smoke_api.cpp +++ b/src/smoke_api/smoke_api.cpp @@ -213,17 +213,7 @@ namespace smoke_api { original_steamapi_handle = kb::lib::load_original_library(self_path, STEAM_API_MODULE); #ifdef KB_LINUX - // We need to enable writing into the instruction memory - // TODO: Move to generated file - const auto code_section = kb::lib::get_section_or_throw(module_handle, kb::lib::CODE_SECTION); - PLH::MemAccessor mem_accessor; - PLH::MemoryProtector const protector( - reinterpret_cast(code_section.start_address), - code_section.size, - PLH::ProtFlag::RWX, - mem_accessor - ); - proxy_exports::init(original_steamapi_handle); + proxy_exports::init(module_handle, original_steamapi_handle); #endif } diff --git a/src/smoke_api/smoke_api.hpp b/src/smoke_api/smoke_api.hpp index 9415d23..ba02708 100644 --- a/src/smoke_api/smoke_api.hpp +++ b/src/smoke_api/smoke_api.hpp @@ -2,12 +2,6 @@ #include "smoke_api/types.hpp" -constexpr auto STEAM_APPS = "STEAMAPPS_INTERFACE_VERSION"; -constexpr auto STEAM_CLIENT = "SteamClient"; -constexpr auto STEAM_HTTP = "STEAMHTTP_INTERFACE_VERSION"; -constexpr auto STEAM_USER = "SteamUser"; -constexpr auto STEAM_INVENTORY = "STEAMINVENTORY_INTERFACE_V"; -constexpr auto STEAM_GAME_SERVER = "SteamGameServer"; // IMPORTANT: DLL_EXPORT is hardcoded in windows_exports_generator.cpp & linux_exports_generator.cpp, // so any name changes here must be reflected there as well. diff --git a/src/steam_api/steam_interfaces.cpp b/src/steam_api/steam_interfaces.cpp index dd44dad..4953f8a 100644 --- a/src/steam_api/steam_interfaces.cpp +++ b/src/steam_api/steam_interfaces.cpp @@ -9,7 +9,6 @@ #include "smoke_api/steamclient/steamclient.hpp" #include "steam_api/steam_interfaces.hpp" -#include "smoke_api/smoke_api.hpp" #include "virtuals/steam_api_virtuals.hpp" namespace { @@ -37,7 +36,7 @@ namespace { return { { - STEAM_APPS, + "STEAMAPPS_INTERFACE_VERSION", interface_data_t{ .fallback_version = "STEAMAPPS_INTERFACE_VERSION008", .entry_map = { @@ -49,7 +48,7 @@ namespace { } }, { - STEAM_CLIENT, + steam_interfaces::STEAM_CLIENT, interface_data_t{ .fallback_version = "SteamClient021", .entry_map = { @@ -61,7 +60,7 @@ namespace { } }, { - STEAM_GAME_SERVER, + "SteamGameServer", interface_data_t{ .fallback_version = "SteamGameServer015", .entry_map = { @@ -70,7 +69,7 @@ namespace { } }, { - STEAM_HTTP, + "STEAMHTTP_INTERFACE_VERSION", interface_data_t{ .fallback_version = "STEAMHTTP_INTERFACE_VERSION003", .entry_map = { @@ -81,7 +80,7 @@ namespace { } }, { - STEAM_INVENTORY, + "STEAMINVENTORY_INTERFACE_V", interface_data_t{ .fallback_version = "STEAMINVENTORY_INTERFACE_V003", .entry_map = { @@ -96,7 +95,7 @@ namespace { } }, { - STEAM_USER, + "SteamUser", interface_data_t{ .fallback_version = "SteamUser023", .entry_map = { diff --git a/src/steam_api/steam_interfaces.hpp b/src/steam_api/steam_interfaces.hpp index cfa37a4..30a2740 100644 --- a/src/steam_api/steam_interfaces.hpp +++ b/src/steam_api/steam_interfaces.hpp @@ -9,6 +9,8 @@ ) namespace steam_interfaces { + constexpr auto STEAM_CLIENT = "SteamClient"; + void hook_virtuals(const void* interface_ptr, const std::string& version_string); /**