Advertisement
vovan333

copypasta

Sep 20th, 2017
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         // 48 8B 1D ? ? ? ? 74 40
  2.         #define SIG_UWORLD "\x48\x8B\x1D\x00\x00\x00\x00\x74\x40"
  3.         #define MASK_UWORLD "xxx????xx"
  4.  
  5.         static UWorld* GetUWorld()
  6.         {
  7.              DWORD addr = (DWORD)SignatureScan(SIG_UWORLD, MASK_UWORLD);
  8.              if (!addr) return NULL;
  9.              DWORD offset = *(DWORD*)(addr + 3) + 7;
  10.              return *(UWorld**)(addr + offset);
  11.         }
  12.  
  13.         static void* SignatureScan(char* pattern, char* mask)
  14.         {
  15.             MODULEINFO modInfo = GetModuleInfo(L"TslGame.exe");
  16.             DWORD size = modInfo.SizeOfImage;
  17.             DWORD base = (DWORD)modInfo.lpBaseOfDll;
  18.             DWORD patternLength = (DWORD)strlen(mask);
  19.  
  20.             for (DWORD i = 0; i < size - patternLength; i++)
  21.             {
  22.                 bool found = true;
  23.                 for (DWORD j = 0; j < patternLength; j++)
  24.                 {
  25.                     found &= mask[j] == '?' || pattern[j] == *(char*)(base + i + j);
  26.                 }
  27.                 if (found)
  28.                 {
  29.                     return (void*)(base + i);
  30.                 }
  31.             }
  32.  
  33.             return NULL;
  34.         }
  35.  
  36.         static MODULEINFO GetModuleInfo(wstring moduleName)
  37.         {
  38.             MODULEINFO modInfo;
  39.             HMODULE hModule = GetModuleHandle(moduleName.c_str());
  40.             GetModuleInformation(GetCurrentProcess(), hModule, &modInfo, sizeof(MODULEINFO));
  41.             return modInfo;
  42.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement