Advertisement
Guest User

Untitled

a guest
Aug 20th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <iostream>
  3. #include <Windows.h>
  4. #include <string>
  5. #include <ctime>
  6.  
  7. void WriteToMemory(HANDLE hProcHandle);
  8. DWORD FindDmaAddy(int PointerLevel, HANDLE hProcHandle, DWORD Offsets[], DWORD BaseAddress);
  9.  
  10.  
  11. std::string GameName = "Sta";
  12. LPCSTR LGameWindow = "Sta (64-bit, PCD3D_SM5)";
  13. std::string GameStatus;
  14.  
  15.  
  16. bool IsGameAvail;
  17. bool UpdateOnNextRun;
  18.  
  19. bool FireStatus;
  20. BYTE FireValue[] = { 0x10,0x0,0x0,0x0 };
  21. DWORD FireBaseAddress = { 0x04be6798 };
  22. DWORD FireOffsets[] = { 0x1b8, 0x20, 0x400, 0x78, 0x3bc };
  23.  
  24.  
  25. int main()
  26. {
  27.    
  28.     HWND hGameWindow = NULL;
  29.     int timeSinceLastUpdate = clock();
  30.     int GameAvailTMR = clock();
  31.     int OnePressTMR;
  32.     DWORD dwProcId = NULL;
  33.     HANDLE hProcHandle = NULL;
  34.     UpdateOnNextRun = true;
  35.     std::string sFireStatus;
  36.     sFireStatus = "OFF";
  37.     OnePressTMR = clock();
  38.     while (!GetAsyncKeyState(VK_INSERT))
  39.     {
  40.        
  41.         if (clock() - GameAvailTMR > 100)
  42.         {
  43.             GameAvailTMR = clock();
  44.             IsGameAvail = false;
  45.             hGameWindow = FindWindow(NULL, LGameWindow);
  46.             if (hGameWindow)
  47.             {
  48.                 GetWindowThreadProcessId(hGameWindow, &dwProcId);
  49.                 if (dwProcId != 0)
  50.                 {
  51.                     hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcId);
  52.                     if (hProcHandle == INVALID_HANDLE_VALUE || hProcHandle == NULL)
  53.                     {
  54.                         GameStatus = "Failed to open process for valid handle";
  55.                     }
  56.                     else
  57.                     {
  58.                         GameStatus = "Ready to hack";
  59.                         IsGameAvail = true;
  60.                     }
  61.                 }
  62.                 else GameStatus = "Failed to obtain process id";
  63.             }
  64.             else GameStatus = "game NOT FOUND";
  65.  
  66.             if (UpdateOnNextRun || clock() - timeSinceLastUpdate > 5000)
  67.             {
  68.                 system("cls");
  69.                 std::cout << "----------------------------------------------------" << std::endl;
  70.                 std::cout << "        memory hacker" << std::endl;
  71.                 std::cout << "----------------------------------------------------" << std::endl << std::endl;
  72.                 std::cout << "GAME STATUS:" << GameStatus << "   " << std::endl << std::endl;
  73.                 std::cout << "[F1] cheat -> " << sFireStatus << " <-" << std::endl << std::endl;
  74.                 std::cout << "[INSERT] Exit" << std::endl;
  75.                 std::cout << FindDmaAddy(5, hProcHandle, FireOffsets, FireBaseAddress);
  76.                 UpdateOnNextRun = false;
  77.                 timeSinceLastUpdate = clock();
  78.             }
  79.  
  80.             if (IsGameAvail)
  81.             {
  82.                 WriteToMemory(hProcHandle);
  83.             }
  84.         }
  85.  
  86.         if (clock() - OnePressTMR > 400)
  87.         {
  88.             if (IsGameAvail)
  89.             {
  90.                 if (GetAsyncKeyState(VK_F1))
  91.                 {
  92.                     OnePressTMR = clock();
  93.                     FireStatus = !FireStatus;
  94.                     UpdateOnNextRun = true;
  95.                     if (FireStatus)sFireStatus = "ON";
  96.                     else sFireStatus = "OFF";
  97.                 }
  98.             }
  99.         }
  100.     }
  101.     CloseHandle(hProcHandle);
  102.     CloseHandle(hGameWindow);
  103.  
  104.     return ERROR_SUCCESS;
  105. }
  106.  
  107. DWORD FindDmaAddy(int PointerLevel, HANDLE hProcHandle, DWORD Offsets[], DWORD BaseAddress)
  108. {
  109.     DWORD pointer = BaseAddress;            
  110.                                              
  111.     DWORD pTemp;
  112.  
  113.     DWORD pointerAddr;
  114.     for (int i = 0; i < PointerLevel; i++)
  115.     {
  116.         if (i == 0)
  117.         {
  118.             ReadProcessMemory(hProcHandle, (LPCVOID)pointer, &pTemp, 4, NULL);
  119.         }
  120.         pointerAddr = pTemp + Offsets[i];  
  121.  
  122.                                            
  123.         ReadProcessMemory(hProcHandle, (LPCVOID)pointerAddr, &pTemp, 4, NULL);
  124.        
  125.     }
  126.     return pointerAddr;
  127. }
  128.  
  129. void WriteToMemory(HANDLE hProcHandle)
  130. {
  131.     if (FireStatus)
  132.     {
  133.         DWORD AmmoAddressToWrite = FindDmaAddy(5 ,hProcHandle, FireOffsets, FireBaseAddress);
  134.         WriteProcessMemory(hProcHandle, (BYTE*)AmmoAddressToWrite, &FireValue, sizeof(FireValue), NULL);
  135.     }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement