TheManatee

GetBaseAddress - External Hack

May 26th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. // Get's base address
  2. __int64 GetModuleBaseAddress(LPCWSTR szProcessName, LPCWSTR szModuleName)
  3. {
  4.     HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  5.     PROCESSENTRY32 pe32;
  6.  
  7.     if (hSnap == INVALID_HANDLE_VALUE)
  8.     {
  9.         return 0;
  10.     }
  11.     pe32.dwSize = sizeof(PROCESSENTRY32);
  12.     if (Process32First(hSnap, &pe32) == 0)
  13.     {
  14.         CloseHandle(hSnap);
  15.         return 0;
  16.     }
  17.  
  18.     do
  19.     {
  20.         if (lstrcmp(pe32.szExeFile, szProcessName) == 0)
  21.         {
  22.             int PID;
  23.             PID = pe32.th32ProcessID;
  24.  
  25.             HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PID);
  26.             MODULEENTRY32 xModule;
  27.  
  28.             if (hSnap == INVALID_HANDLE_VALUE)
  29.             {
  30.                 return 0;
  31.             }
  32.             xModule.dwSize = sizeof(MODULEENTRY32);
  33.             if (Module32First(hSnap, &xModule) == 0)
  34.             {
  35.                 CloseHandle(hSnap);
  36.                 return 0;
  37.             }
  38.  
  39.             do
  40.             {
  41.                 if (lstrcmp(xModule.szModule, szModuleName) == 0)
  42.                 {
  43.                     CloseHandle(hSnap);
  44.                     return (__int64)xModule.modBaseAddr;
  45.                 }
  46.             } while (Module32Next(hSnap, &xModule));
  47.             CloseHandle(hSnap);
  48.             return 0;
  49.         }
  50.     } while (Process32Next(hSnap, &pe32));
  51.     CloseHandle(hSnap);
  52.     return 0;
  53. }
Add Comment
Please, Sign In to add comment