CrackAndLoad
Writing your own C++ Trainer Welcom10
CrackAndLoad
Writing your own C++ Trainer Welcom10
CrackAndLoad
Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
HomePortalSearchLatest imagesRegisterLog in
Welcome To CrackAndLoad! Please Be Active And Read Our Forum Rules To Avoid Get Banned! Enjoy !

Share
 

 Writing your own C++ Trainer

View previous topic View next topic Go down 
AuthorMessage
CodeBlack

HYPER MODERATOR

CodeBlack

Posts : 75
Post/Message Points : 175
Thanks : 26
Join date : 2012-12-01

Writing your own C++ Trainer Empty
PostSubject: Writing your own C++ Trainer   Writing your own C++ Trainer Icon_minitimeThu Dec 20, 2012 10:22 am

Here is a tutorial teaching your the very basics of making a trainer, namely how to find a process and write shit into it at the correct address. what it doesn't cover is making a GUI-based (graphic user interface) trainer with hotkey hooks that work when the program is in the background.

you need a C++ compiler, like MS Visual C++ or whatever, to compile the attached source code. copy it and save as OMFG_thanks_dude_for_this_tut.cpp or something.
Code:
/* --------- TUTORIAL: Making your first Trainer -------- */


#include <windows.h>
#include <conio.h>
#include <dos.h>
#include <tlhelp32.h>
#include <stdio.h>


int stamina;   // will store the stamina value

bool dostamina = false;      // determines if user activated stamina freezing

LPVOID stamina_addr =   (void*) 0x007F1110;      // memory address of the stamina value in the WarRock process

void screen()   // output
{
   system("cls");   // clear the screen
   printf("Hello World! This is my first WarRock trainer!  \n\n");
   
   if(dostamina) printf("[1] - freeze stamina [ENABLED]\n");   // if user enabled stamina freeze, let him know!
   else printf("[1] - freeze stamina [disabled]\n");         // same if it's disabled
}

int main(int argc, char* argv[])
{   
   HANDLE hProcessSnap;   // will store a snapshot of all processes
   HANDLE hProcess = NULL;   // we will use this one for the WarRock process
   PROCESSENTRY32 pe32;   // stores basic info of a process, using this one to read the ProcessID from
   
   hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );   // make process snapshot

   pe32.dwSize = sizeof( PROCESSENTRY32 );      // correct size

   Process32First(hProcessSnap, &pe32);   // read info about the first process into pe32

   do   // loop to find the WarRock process
   {      
      if(strcmp(pe32.szExeFile, "WarRock.exe") == 0)   // if WarRock was found
      {
         hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);   // open it, assigning to the hProcess handle
         break;   // break the loop
      }
   }
   while(Process32Next(hProcessSnap, &pe32));   // loop continued until Process32Next deliver NULL or its interrupted with the "break" above

   CloseHandle( hProcessSnap );   // close the handle (just fuckin do it)

   if(hProcess == NULL)   // self explanatory tbh
   {
      printf("WarRock not found\n\n");
      getch();   // wait for a key press. otherwise the app will just close so fast when the process is not found, you wont know wtf happened.
   }
   else
   {
      screen();   // print the display
      
      char key = ' ';   // make a key variable to store pressed keys
      
      while(key != VK_ESCAPE)   // loop until user presses Escape
      {
         
         if(kbhit())      // if a key was pressed
         {
            key = getch();   // it is saved into "key"

            switch(key)      // here the commands are handled depending on the key that was pressed
            {            // case '1': ... break;  case '2': ... break; and so on
            case '1':
               dostamina = !dostamina;      // flip the dostamina value true<->false to enable/disable it
               ReadProcessMemory(hProcess, stamina_addr, &stamina, 4, NULL);   // read the stamina value from the memory into the "stamina" variable
               break;         
            }

            screen();   // print the display after each key press

         }

         if(dostamina)   // if stamina freeze is activated
            WriteProcessMemory(hProcess, stamina_addr, &stamina, 4, NULL);   // write the stamina value that was saved before with the key press into memory
      }

      CloseHandle(hProcess);   // close the handle
      
   }

   return 0;   // THE END
}
Back to top Go down
 

Writing your own C++ Trainer

View previous topic View next topic Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
CrackAndLoad :: Computer Programming :: C++ Programming-