Advertisement
Guest User

Plants vs Zombies Haxxxx

a guest
Jul 5th, 2015
1,081
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <Windows.h>
  3. #include <TlHelp32.h>
  4. #include <Shlwapi.h>
  5.  
  6. using namespace std;
  7.  
  8. DWORD GetProcessIdByName( LPCSTR procName ){
  9.     PROCESSENTRY32 pe;
  10.     HANDLE snapShot;
  11.  
  12.     pe.dwSize = sizeof( pe );
  13.  
  14.     snapShot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, NULL );
  15.     if( !snapShot ) throw runtime_error( "Unable to create a snapshot for processes." );
  16.  
  17.     if( Process32First( snapShot, &pe ) ){
  18.         do{
  19.             if( !stricmp( pe.szExeFile, procName ) ){
  20.                 CloseHandle( snapShot );
  21.                 return pe.th32ProcessID;
  22.             }
  23.         } while( Process32Next( snapShot, &pe ) );
  24.     }
  25.     CloseHandle( snapShot );
  26.     return -1;
  27. }
  28.  
  29. HMODULE GetModuleBaseByName( DWORD PID, LPCSTR modName ){
  30.     MODULEENTRY32 me;
  31.     HANDLE snapShot;
  32.     WCHAR wModName[MAX_PATH];
  33.  
  34.     wcstombs_s(
  35.     me.dwSize = sizeof( me );
  36.     me.th32ProcessID = PID;
  37.  
  38.     snapShot = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, NULL );
  39.     if( !snapShot ) throw runtime_error( "Unable to create a snapshot for process modules." );
  40.  
  41.     if( Module32First( snapShot, &me ) ){
  42.         do{
  43.             if( !StrCmpW( me.szModule, wModName ) ){
  44.                 CloseHandle( snapShot );
  45.                 return HMODULE( me.modBaseAddr );
  46.             }
  47.         } while( Module32Next( snapShot, &me );
  48.     }
  49.     CloseHandle( snapShot );
  50.     return HMODULE( NULL );
  51. }
  52.  
  53. HANDLE OpenProcessByName( LPCSTR procName ){
  54.     HANDLE hProc = INVALID_HANDLE_VALUE;
  55.     DWORD pID = GetProcessIdByName( procName );
  56.  
  57.     if( pID != -1 )
  58.         hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID );
  59.  
  60.     return hProc;
  61. }
  62.  
  63. HANDLE OpenProcessID( DWORD PID ){
  64.     return OpenProcess( PROCESS_ALL_ACCESS, FALSE, PID );
  65. }
  66.  
  67. int main( int argc, char** argv ){
  68.     DWORD pid = -1, tick = 0;
  69.     HANDLE Proc = INVALID_HANDLE_VALUE;
  70.     PVOID BaseModule = NULL, PVOID Money = NULL;
  71.     DWORD MoneyInt = 99999, Out = 0;
  72.  
  73.     cout << "Waiting for Plants vs Zombies to start " << endl;
  74.  
  75.     while( ( pid = GetProcessIdByName( "popcapgame1.exe" ), pid == -1 ) )
  76.     {
  77.         cout << ".";
  78.         Sleep(1000);
  79.     }
  80.  
  81.     cout << endl << "Located Process with ID of ( " << pid << " )" << endl << "Attaching ..." << endl;
  82.  
  83.     Proc = OpenProcessID( pid );
  84.     if( !Proc ) throw runtime_error( "Unable to attach to the process." );
  85.  
  86.     cout << "Attached to process." << endl << "Locating module's base address..." << endl;
  87.  
  88.     BaseModule = PVOID( GetModuleBaseByName( "popcapgame1.exe" );
  89.  
  90.     if( !BaseModule ) throw runtime_error( "Unable to locate the module's base address." );
  91.     else cout << "Located module's base address at: " << BaseModule << endl;
  92.  
  93.     Money = PVOID( PCHAR( BaseModule ) + 0x2619C );
  94.  
  95.     cout << "Keeping $$ value constant .";
  96.     while( 1 ){
  97.  
  98.         if( GetAsyncKeyState( VK_F1 ) & 1 )
  99.             break;
  100.        
  101.         if( tick++ > 10 ){
  102.             cout << "."
  103.             tick = 0;
  104.         }
  105.  
  106.         WriteProcessMemory( Proc, Money, LPCVOID( &MoneyInt ), sizeof( DWORD ), &Out );
  107.  
  108.         Sleep( 100 );
  109.     }
  110.  
  111.     cout << "Hotkey pressed. Program terminated." << endl;
  112.     CloseHandle( Proc );
  113.  
  114.     getchar();
  115.     return 0;
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement