From 79839e4c2b8491fa0e56cd217094b6ec2d3cf01f Mon Sep 17 00:00:00 2001 From: Gottfried Leibniz <37632412+gottfriedleibniz@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:55:31 -0400 Subject: [PATCH] fix(steam): support steamclient64.dll 8.75.5.19... for now. See c5ae3cf3bf43895bdc299b3906309167677f893c --- code/components/steam/src/ClientEngineMapper.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/code/components/steam/src/ClientEngineMapper.cpp b/code/components/steam/src/ClientEngineMapper.cpp index 413baa4c55..b60643e024 100644 --- a/code/components/steam/src/ClientEngineMapper.cpp +++ b/code/components/steam/src/ClientEngineMapper.cpp @@ -88,10 +88,20 @@ void ClientEngineMapper::LookupMethods() bool ClientEngineMapper::IsMethodAnInterface(void* methodPtr, bool* isUser, bool child) { // 2021-05 Steam removes strings entirely from user interfaces - if (!child && hook::range_pattern((uintptr_t)methodPtr, (uintptr_t)methodPtr + 128, "42 3B 74 11 10 4A 8D 14 11 7C").count_hint(1).size() > 0) + if (!child) { - *isUser = true; - return true; + for (auto pattern : { + "42 3B 74 11 10 4A 8D 14 11 7C", // >= 6.55.98.67 (2021-05) + "48 C1 E0 05 48 03 C2 3B 78 10 7C", // >= 8.74.80.95 (2024-03) + }) + { + uintptr_t method = reinterpret_cast(methodPtr); + if (hook::range_pattern(method, method + 128, pattern).count_hint(1).size() > 0) + { + *isUser = true; + return true; + } + } } // output variable