diff options
Diffstat (limited to 'NorthstarDedicatedTest/miscserverfixes.cpp')
-rw-r--r-- | NorthstarDedicatedTest/miscserverfixes.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/NorthstarDedicatedTest/miscserverfixes.cpp b/NorthstarDedicatedTest/miscserverfixes.cpp index fca9c169..0b9a12db 100644 --- a/NorthstarDedicatedTest/miscserverfixes.cpp +++ b/NorthstarDedicatedTest/miscserverfixes.cpp @@ -2,32 +2,26 @@ #include "miscserverfixes.h" #include "hookutils.h" +#include "NSMem.h" + void InitialiseMiscServerFixes(HMODULE baseAddress) { + uintptr_t ba = (uintptr_t)baseAddress; + // ret at the start of the concommand GenerateObjFile as it can crash servers { - char* ptr = reinterpret_cast<char*>(baseAddress) + 0x38D920; - TempReadWrite rw(ptr); - *ptr = 0xC3; + NSMem::BytePatch(ba + 0x38D920, {0xC3}); } // nop out call to VGUI shutdown since it crashes the game when quitting from the console { - char* ptr = reinterpret_cast<char*>(baseAddress) + 0x154A96; - TempReadWrite rw(ptr); - *(ptr++) = 0x90; // nop - *(ptr++) = 0x90; // nop - *(ptr++) = 0x90; // nop - *(ptr++) = 0x90; // nop - *ptr = 0x90; // nop + NSMem::NOP(ba + 0x154A96, 5); } // ret at the start of CServerGameClients::ClientCommandKeyValues as it has no benefit and is forwarded to client (i.e. security issue) // this prevents the attack vector of client=>server=>client, however server=>client also has clientside patches { - char* ptr = reinterpret_cast<char*>(baseAddress) + 0x153920; - TempReadWrite rw(ptr); - *ptr = 0xC3; + NSMem::BytePatch(ba + 0x153920, {0xC3}); } } |