#1 5. März 2010 Zuletzt von einem Moderator bearbeitet: 14. April 2017 BioShock 2 v1.0 Trainer +4 BioShock 2 v1.0 Trainer +4 - Unendlich Munition - Unendlich Treibstoff - Unendlich Dollar - Unendlich ADAM Alles automatisch an https://www.xup.in/dl,17961003/Bioshock2_Trainer.rar/ Code: #include <windows.h> #include <tlhelp32.h> #include <stdio.h> #define Game_Process_Name "bioshock2.exe" DWORD GetProcessPID(char* processName); BOOL PatchMemory(HANDLE * processH, LPVOID address, BYTE* patch, DWORD size); int main(void) { DWORD dwGamePID = 0; HANDLE hProcess; BYTE nop2Patch[] = {0x90,0x90}; BYTE nop3Patch[] = {0x90,0x90,0x90}; BYTE nop6Patch[] = {0x90,0x90,0x90,0x90,0x90,0x90}; printf("\nBioShock 2 v1.0 Trainer by N0S\n\n"); printf("Warte auf Spiel...\n"); while(!dwGamePID) { dwGamePID = GetProcessPID(Game_Process_Name); Sleep(1000); } hProcess = OpenProcess(PROCESS_VM_READ|PROCESS_VM_WRITE|PROCESS_VM_OPERATION, NULL, dwGamePID); if(!hProcess) { printf("Error OpenProcess"); return 0; } //xlive.dll selfcheck disable PatchMemory(&hProcess, (LPVOID)0x009CDA24, nop2Patch, sizeof(nop2Patch)); //unendlich ammo 1 (aktuelles magazin) PatchMemory(&hProcess, (LPVOID)0x10D1B27C, nop2Patch, sizeof(nop2Patch)); //unendlich ammo 2 (vorrat + treibstoff) PatchMemory(&hProcess, (LPVOID)0x10edaee6, nop3Patch, sizeof(nop3Patch)); //unendlich dollar PatchMemory(&hProcess, (LPVOID)0x10E29CC7, nop6Patch, sizeof(nop6Patch)); //unendlich adam PatchMemory(&hProcess, (LPVOID)0x10E29F56, nop6Patch, sizeof(nop6Patch)); printf("\n\nAlles erfolgreich gepatched"); char c = getchar(); return 0; } BOOL PatchMemory(HANDLE * processH, LPVOID address, BYTE* patch, DWORD size) { DWORD rBuf = 0; WriteProcessMemory(*processH,address,patch,size,&rBuf); if(rBuf == 0) { return FALSE; } printf("\nPatch Address: 0x%08X",address); return TRUE; } DWORD GetProcessPID(char* processName) { HANDLE hProcessSnap; PROCESSENTRY32 pe32; // Take a snapshot of all processes in the system. hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); if( hProcessSnap == INVALID_HANDLE_VALUE ) { printf("Error CreateToolhelp32Snapshot"); return NULL; } pe32.dwSize = sizeof( PROCESSENTRY32 ); // Retrieve information about the first process if( !Process32First( hProcessSnap, &pe32 ) ) { printf("Error Process32First"); CloseHandle( hProcessSnap ); return NULL; } //cycle process do { //printf("\n%s", pe32.szExeFile ); //case insensitivity if (_stricmp(pe32.szExeFile, processName) == 0) { return pe32.th32ProcessID; } } while( Process32Next( hProcessSnap, &pe32 ) ); CloseHandle( hProcessSnap ); return NULL; } + Multi-Zitat Zitieren