Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <TlHelp32.h>
- #include <Shlwapi.h>
- using namespace std;
- DWORD GetProcessIdByName( LPCSTR procName ){
- PROCESSENTRY32 pe;
- HANDLE snapShot;
- pe.dwSize = sizeof( pe );
- snapShot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, NULL );
- if( !snapShot ) throw runtime_error( "Unable to create a snapshot for processes." );
- if( Process32First( snapShot, &pe ) ){
- do{
- if( !stricmp( pe.szExeFile, procName ) ){
- CloseHandle( snapShot );
- return pe.th32ProcessID;
- }
- } while( Process32Next( snapShot, &pe ) );
- }
- CloseHandle( snapShot );
- return -1;
- }
- HMODULE GetModuleBaseByName( DWORD PID, LPCSTR modName ){
- MODULEENTRY32 me;
- HANDLE snapShot;
- WCHAR wModName[MAX_PATH];
- wcstombs_s(
- me.dwSize = sizeof( me );
- me.th32ProcessID = PID;
- snapShot = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, NULL );
- if( !snapShot ) throw runtime_error( "Unable to create a snapshot for process modules." );
- if( Module32First( snapShot, &me ) ){
- do{
- if( !StrCmpW( me.szModule, wModName ) ){
- CloseHandle( snapShot );
- return HMODULE( me.modBaseAddr );
- }
- } while( Module32Next( snapShot, &me );
- }
- CloseHandle( snapShot );
- return HMODULE( NULL );
- }
- HANDLE OpenProcessByName( LPCSTR procName ){
- HANDLE hProc = INVALID_HANDLE_VALUE;
- DWORD pID = GetProcessIdByName( procName );
- if( pID != -1 )
- hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID );
- return hProc;
- }
- HANDLE OpenProcessID( DWORD PID ){
- return OpenProcess( PROCESS_ALL_ACCESS, FALSE, PID );
- }
- int main( int argc, char** argv ){
- DWORD pid = -1, tick = 0;
- HANDLE Proc = INVALID_HANDLE_VALUE;
- PVOID BaseModule = NULL, PVOID Money = NULL;
- DWORD MoneyInt = 99999, Out = 0;
- cout << "Waiting for Plants vs Zombies to start " << endl;
- while( ( pid = GetProcessIdByName( "popcapgame1.exe" ), pid == -1 ) )
- {
- cout << ".";
- Sleep(1000);
- }
- cout << endl << "Located Process with ID of ( " << pid << " )" << endl << "Attaching ..." << endl;
- Proc = OpenProcessID( pid );
- if( !Proc ) throw runtime_error( "Unable to attach to the process." );
- cout << "Attached to process." << endl << "Locating module's base address..." << endl;
- BaseModule = PVOID( GetModuleBaseByName( "popcapgame1.exe" );
- if( !BaseModule ) throw runtime_error( "Unable to locate the module's base address." );
- else cout << "Located module's base address at: " << BaseModule << endl;
- Money = PVOID( PCHAR( BaseModule ) + 0x2619C );
- cout << "Keeping $$ value constant .";
- while( 1 ){
- if( GetAsyncKeyState( VK_F1 ) & 1 )
- break;
- if( tick++ > 10 ){
- cout << "."
- tick = 0;
- }
- WriteProcessMemory( Proc, Money, LPCVOID( &MoneyInt ), sizeof( DWORD ), &Out );
- Sleep( 100 );
- }
- cout << "Hotkey pressed. Program terminated." << endl;
- CloseHandle( Proc );
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement