From f068ac528cce2e416ed1eeacb37f787fd57b28a9 Mon Sep 17 00:00:00 2001 From: Rosne Date: Sat, 23 May 2026 13:14:01 -0400 Subject: [PATCH 1/2] Update KeyValues signatures for latest version of TF2 --- main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.cpp b/main.cpp index 1e38747..c4e4646 100644 --- a/main.cpp +++ b/main.cpp @@ -322,7 +322,7 @@ void entry() { rv = funchook_prepare(funchook, (void**)&text_window_show_panel_original, (void*)text_window_show_panel_hook); error_assert(rv != 0, "Failed to prepare CTFTextWindow::ShowPanel hook\n"); - key_values_constructor_original = (KeyValues* (*)(void*, const char*))sigscan_module("client.so", "55 31 C0 66 0F EF C0 48 89 E5 53"); + key_values_constructor_original = (KeyValues* (*)(void*, const char*))sigscan_module("client.so", "55 66 0F EF C0 48 89 E5 53 48 89 FB 48 89 F7"); error_assert(key_values_constructor_original == nullptr, "Failed to find KeyValues() constructor"); key_values_set_int_original = (void (*)(void*, const char*, int))sigscan_module("client.so", "55 48 89 E5 53 89 D3 BA ? ? ? ? 48 83 EC ? E8 ? ? ? ? 48 85 C0 74 ? 89 58"); @@ -330,7 +330,7 @@ void entry() { rv = funchook_prepare(funchook, (void**)&key_values_set_int_original, (void*)key_values_set_int_hook); error_assert(rv != 0, "Failed to prepare KeyValues::SetInt() hook\n"); - key_values_load_from_buffer_original = (bool (*)(void*, const char*, const char*, void*, const char*))sigscan_module("client.so", "55 48 89 E5 41 57 41 56 41 55 41 54 53 48 81 EC ? ? ? ? 48 85 D2 48 89 BD"); + key_values_load_from_buffer_original = (bool (*)(void*, const char*, const char*, void*, const char*))sigscan_module("client.so", "55 48 89 E5 41 57 41 56 4C 8D 35 ? ? ? ? 41 55 49 89 FD 66 49 0F 6E C6"); error_assert(key_values_load_from_buffer_original == nullptr, "Failed to find KeyValues::LoadFromBuffer()"); // Hook Vulkan error_assertpresent From 479b22f5845331708461d3d5173593c2e986d97d Mon Sep 17 00:00:00 2001 From: Rosne Date: Sun, 24 May 2026 00:39:20 -0400 Subject: [PATCH 2/2] Update signature for key_values_load_from_buffer_original --- main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index c4e4646..83b440c 100644 --- a/main.cpp +++ b/main.cpp @@ -330,7 +330,7 @@ void entry() { rv = funchook_prepare(funchook, (void**)&key_values_set_int_original, (void*)key_values_set_int_hook); error_assert(rv != 0, "Failed to prepare KeyValues::SetInt() hook\n"); - key_values_load_from_buffer_original = (bool (*)(void*, const char*, const char*, void*, const char*))sigscan_module("client.so", "55 48 89 E5 41 57 41 56 4C 8D 35 ? ? ? ? 41 55 49 89 FD 66 49 0F 6E C6"); + key_values_load_from_buffer_original = (bool (*)(void*, const char*, const char*, void*, const char*))sigscan_module("client.so", "55 48 89 E5 41 57 41 56 41 55 41 54 53 48 81 EC ? ? ? ? 48 85 D2 48 89 BD"); error_assert(key_values_load_from_buffer_original == nullptr, "Failed to find KeyValues::LoadFromBuffer()"); // Hook Vulkan error_assertpresent