diff --git a/AMBuildScript b/AMBuildScript index 77353ac..cc5c402 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -278,7 +278,7 @@ class MMSPluginConfig(object): cxx.cxxincludes += [ os.path.join(context.currentSourcePath), os.path.join(mms_core_path), - os.path.join(mms_core_path, 'sourcehook'), + os.path.join(self.mms_root, 'third_party', 'khook', 'include'), ] defines = [] diff --git a/MovementUnlocker.cpp b/MovementUnlocker.cpp index 9cb5e08..2781173 100644 --- a/MovementUnlocker.cpp +++ b/MovementUnlocker.cpp @@ -19,7 +19,7 @@ #include #include "MovementUnlocker.h" -#include +#include "khook/memory.hpp" #ifdef _WIN32 #include #elif __linux__ @@ -33,9 +33,9 @@ const unsigned char *pPatchSignature = (unsigned char *)"\x0F\x86\xAF\x2A\x2A\x2 const char *pPatchPattern = "xxx???xxxxxx"; int PatchLen = 6; #elif __linux__ -const unsigned char * pPatchSignature = (unsigned char *)"\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x25\x2A\x2A\x2A\x2A\xF3\x0F\x11\xA5\x2A\x2A\x2A\x2A\x48\x89\xDE"; -const char* pPatchPattern = "xx????xxxx????xxxx????xxx"; -int PatchLen = 6; +const unsigned char * pPatchSignature = (unsigned char *)"\x76\x2A\xF3\x0F\x51\xC0\xF3\x0F\x7E\xDB\x49\x8B\x06"; +const char* pPatchPattern = "x?xxxxxxxxxxx"; +int PatchLen = 1; #endif // From https://git.botox.bz/CSSZombieEscape/sm-ext-PhysHooks @@ -110,7 +110,7 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl return false; } - SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC); + KHook::Memory::SetAccess((void*)pPatchAddress, PatchLen, KHook::Memory::READ | KHook::Memory::WRITE | KHook::Memory::EXECUTE); #ifdef _WIN32 const char* patchBytes[] = {"\xE9", "\xB0", "\x00", "\x00", "\x00", "\x90"}; @@ -119,10 +119,10 @@ bool MovementUnlocker::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxl *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)patchBytes[i])[0]; #elif __linux__ for (int i = 0; i < PatchLen; i++) - *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)"\x90")[0]; + *(unsigned char*)(pPatchAddress + i) = ((unsigned char*)"\xEB")[0]; #endif - SourceHook::SetMemAccess((void*)pPatchAddress, PatchLen, SH_MEM_READ | SH_MEM_EXEC); + KHook::Memory::SetAccess((void*)pPatchAddress, PatchLen, KHook::Memory::READ | KHook::Memory::EXECUTE); META_CONPRINTF( "[Movement Unlocker] Successfully patched Movement Unlocker!\n" ); return true; @@ -154,7 +154,7 @@ const char *MovementUnlocker::GetLicense() const char *MovementUnlocker::GetVersion() { - return "1.12"; + return "2.0.1"; } const char *MovementUnlocker::GetDate()