[Server]: Enforce password verification for private clients (#905)

This commit is contained in:
Edo 2023-04-06 17:28:57 +02:00 committed by GitHub
parent bc000fd9be
commit 4e9ec3f0af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 11 additions and 6 deletions

View File

@ -185,8 +185,8 @@ namespace Components
Utils::InfoString infostr(params[2]);
// Read the required data
const auto& steamId = infostr.get("xuid");
const auto& challenge = infostr.get("challenge");
const auto steamId = infostr.get("xuid");
const auto challenge = infostr.get("challenge");
if (steamId.empty() || challenge.empty())
{

View File

@ -128,8 +128,8 @@ namespace Components
Utils::Hook(0x4A9F56, MsgReadBitsCompressCheckCL, HOOK_CALL).install()->quick(); // CL_ParseServerMessage
Utils::Hook(0x407376, SVCanReplaceServerCommand, HOOK_CALL).install()->quick(); // SV_CanReplaceServerCommand
Utils::Hook::Set<BYTE>(0x412370, 0xC3); // SV_SteamAuthClient
Utils::Hook::Set<BYTE>(0x5A8C70, 0xC3); // CL_HandleRelayPacket
Utils::Hook::Set<std::uint8_t>(0x412370, 0xC3); // SV_SteamAuthClient
Utils::Hook::Set<std::uint8_t>(0x5A8C70, 0xC3); // CL_HandleRelayPacket
Utils::Hook::Nop(0x41698E, 5); // Disable Svcmd_EntityList_f
@ -149,6 +149,9 @@ namespace Components
// Fix packets causing buffer overflow
Utils::Hook(0x6267E3, NET_DeferPacketToClientStub, HOOK_CALL).install()->quick();
// The client can fake the info string
Utils::Hook::Set<std::uint8_t>(0x460F6D, 0xEB); // SV_DirectConnect
// Prevent curl 7_19_4 from running
// Call to DL_Init from Live_Init
Utils::Hook::Nop(0x420937, 5);

View File

@ -49,6 +49,7 @@ namespace Game
const dvar_t** fs_gameDirVar = reinterpret_cast<const dvar_t**>(0x63D0CC0);
const dvar_t** fs_homepath = reinterpret_cast<const dvar_t**>(0x63D4FD8);
const dvar_t** sv_privatePassword = reinterpret_cast<const dvar_t**>(0x62C7C14);
const dvar_t** sv_hostname = reinterpret_cast<const dvar_t**>(0x2098D98);
const dvar_t** sv_gametype = reinterpret_cast<const dvar_t**>(0x2098DD4);
const dvar_t** sv_mapname = reinterpret_cast<const dvar_t**>(0x2098DDC);

View File

@ -101,6 +101,7 @@ namespace Game
extern const dvar_t** fs_gameDirVar;
extern const dvar_t** fs_homepath;
extern const dvar_t** sv_privatePassword;
extern const dvar_t** sv_hostname;
extern const dvar_t** sv_gametype;
extern const dvar_t** sv_mapname;