[C/C++] BioShock 2 v1.0 Trainer +4

Dieses Thema im Forum "Projekte / Codes" wurde erstellt von N0S, 5. März 2010 .

Schlagworte:
  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;
    }
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.