Jump to content

C++ Beginners tutorial

129 posts in this topic

Recommended Posts

  • Similar Content

    • By Clickforlife
      Basics of a C++ Cheat
      Note: Sorry if I have some mistakes, also you should read everything so you'll be able to fix stuff in case of errors.
      #include <iostream>
      #include <windows.h>
      This is pretty much all we're going to need for a simple console program, even if you want to add some other stuff, it's probably already in one of these two. Also, you will need to also include "stdafx.h" if you're using visual studio.
      [code] int main(){
      We're using this because we will eventually have to return some integer values too, else we would just use void main.
      [code] SetConsoleTitle(L"Whatever_You_Like");
      This is used to set the title of our console program (that means the name you see at the top) to something else. The L before the string is there for compatibility reasons and as long as you don't use any numbers, everything should go well.
      [code] HWND Window = FindWindow(NULL, L"Game");
      With this code, we are getting the handle of a specific window, which is "Game" (you can of course change it with whatever your game's window name is) and remember, it's not case-sensitive (If your window says "Battlefield" you can use "battlefield" too).
      [code]     if (!Window){
              return 0;
      If the window (the one used above) has not been found (that's why the '!' is there), it closes the console (return 0);
      [code] else{
      DWORD Pid;
              GetWindowThreadProcessId(Window, &Pid);
              HANDLE ProcessHandle= OpenProcess(PROCESS_ALL_ACCESS, FALSE, Pid);
      Pretty understandable from the code itself, we are getting a handle on the process itself to be able to edit its memory, of course.
      [code]         if(!ProcessHandle){
                  return 0;
      Again, if the program can't attach to it or maybe the process is stopping this from happening it will close your program.
      [code] else{
      This is where the actual hack begins, if all goes well.
      [code] for(; {
      This is a not-so-very popular way to create a loop, while(0){ can be used too. A loop basically means it will keep running trough the code and see if anything change or actually change something. Basically think it as freezing an address in cheat engine (though that's not the only thing we'll use it for.
      [code] if(GetAsyncKeyState(VK_F2)){
      This check if a key has been pressed, in this example we're using the F2 key. The added & 0x8000 you probably have seen before refers to the key being held, as far as I know, but it's really just useless in this example, you just want it to be pressed.
      [code] UINT_PTR FByteAddress= 0x01182A74;
      float FloatAddress = 0x011A5B90;
      int ValueForReading = NULL;
      double DoubleAddress = 0x00FDB0F0;
      It's not very common that I see people use UINT_PTR, but it's basically a replacement for stuff including DWORD and is made especially for the 64 bit addressing and also able to hold more information. We also declared the integer 'ValueForReading' to hold the value for ReadProcessMemory (what's below)
      [code] ReadProcessMemory(ProcessHandle, reinterpret_cast<void*>(FByteAddress), &ValueForReading, sizeof(ValueForReading ), nullptr)
      We are basically reading 4ByteAddress' or 0x01182A74's value and storing it in the ValueForReading integer. You may also be un-familiar with nullptr which can also be overloaded, which you can use NULL (which is an integer with the value 0), but sadly if you use an old compiler, you may actually need to use NULL.
      [code] std::cout << "Value of 4Byte: " << ValueForReading << ".\n";
      Here we actually print ValueForReading's value just to check. Also, the "\n" is an alternative to std::endl or endl.
      [code] UINT_PTR Offsets[] = {0x4c, 0x3b};
      Here we're defining the offsets of our address (let's pretend we have offsets) and remember to write them in reverse of how they are in cheat engine (bottom to top).
      [code] WriteProcessMemory(ProcessHandle, reinterpret_cast<void*>(FByteAddress), &Offsets, 2, nullptr);
      Here we wrote the value '2' to that address basically, but let's move onto something like writing bytes.
      [code] WriteProcessMemory(ProcessHandle, reinterpret_cast<void*>(FByteAddress), "/0x90/, 1, nullptr);
      Here we wrote a nop which translates into 90 bytes (This shows into the Memory Viewer in Cheat Engine).

      That is where you will get your bytes from. I won't go too much into detail on Assembly as it's not what I wanted to focus on. A full code can be found down below.
      [code] #include <iostream>
      #include <windows.h>

      int main(){
          HWND Window = FindWindow(NULL, L"csgo");
          if (!Window){
              return 0;
              DWORD pID;
              GetWindowThreadProcessId(Window, &pID);
              HANDLE Hproc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID);
                  return 0;
                  std::cout << "Press F3 to activate.\n";
                  for(; {
                          float Crosshair;
                          UINT_PTR CrosshairAddress = 0x44ABC04;
                          UINT_PTR Shoot = 0x5C4BB;
                          ReadProcessMemory(Hproc, reinterpret_cast<void*>(CrosshairAddress), &Crosshair, sizeof(Crosshair), nullptr);
                          if(Crosshair == 0){
                              WriteProcessMemory(Hproc, reinterpret_cast<void*>(Shoot), "0x32/0x8B/0x90/0x20/0x01/", 5, nullptr);
                              //This writes a special asm code that makes it shoot (it's just like changing its value from 0 to 1 but I preffer using this)
                          else if(Crosshair == 1){
                              WriteProcessMemory(Hproc, reinterpret_cast<void*>(Shoot), "0x32/0x8B/0x90/
    • By Pearl
      Ok so before I even begin knowing batch may help a lot with C++ ❤️
      So now I will be doing variables.

      Hidden Content
      Reply to this topic to see the hidden content. More info
    • By AliKr96
      Those are some basics vids to start with so that u can learn this lang.
      Language C differs From C++ a bit (library).
      I would prefer u to learn C then C++
  • Recently Browsing   0 members

    No registered users viewing this page.

    • Administrator |
    • Global Moderator  |
    • Moderator  |
    • ViP Plus |
    • ViP |
    • Cheater  |
    • Modder  |
    • Novice Cheater |
    • Rookie Modder |
    • Contributor |
    • Senior Member |
    • Member |

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.