Basic C++ Game Hacking (Memory Editing)
Hi All
Some simple basic C++ game hacking (egg: memory editing)
Ill start with one of the most simple codes:
Code:
#include <windows.h>
int main()
{
HWND hWnd = FindWindow(0, "Calculator");
if(hWnd == 0)
{
MessageBox(0, "Error cannot find window.", "Error", MB_OK|MB_ICONERROR);
}
else
{
DWORD proccess_ID;
GetWindowThreadProcessId(hWnd, &proccess_ID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proccess_ID);
if(!hProcess)
{
MessageBox(0, "Could not open the process!", "Error!", MB_OK|MB_ICONERROR);
}
else
{
int newdata = 500;
DWORD newdatasize = sizeof(newdata);
if(WriteProcessMemory(hProcess, (LPVOID)0x57C2A4, &newdata, newdatasize, NULL))
{
MessageBox(NULL, "WriteProcessMemory worked.", "Success", MB_OK + MB_ICONINFORMATION);
}
else
{
MessageBox(NULL, "Error cannot WriteProcessMemory!", "Error", MB_OK + MB_ICONERROR);
}
CloseHandle(hProcess);
}
}
return 0;
}
This will edit the following memory adress: 0x57C2A4
In the calculator window,
Code:
HWND hWnd = FindWindow(0, "Calculator");
if(hWnd == 0)
{
MessageBox(0, "Error cannot find window.", "Error", MB_OK|MB_ICONERROR);
}
The lines above will search for a window (proccess) to edit.
In this case it is the calculator but if you want to edit the Cod4 Adresses it should be iw3mp!
The if statement checks if the window is opened and exists. If not you will get a message that
it can not be found.
Scroll down til you see this line:
Code:
if(WriteProcessMemory(hProcess, (LPVOID)0x57C2A4, &newdata, newdatasize, NULL))
0x57C2A4 is our adress, newdata is the value for our adressm and newdatasize is the bytes
that the adress is (Most 4)
So you could edit it to:
Code:
if(WriteProcessMemory(hProcess, (LPVOID)0x57C2A4, &567, 4, NULL))
Wich will change the value to 567 with 4 bytes.
Memory Adress freezing on request of Zyixc:
So there is not a real code to freeze (egg FreezeAdress() it just don't exsist>
But we can freeze it by using a infinite loop
So we take the code wich edits the adress value:
Code:
if(WriteProcessMemory(hProcess, (LPVOID)0x57C2A4, &newdata, newdatasize, NULL))
{
// Here should be the message box that the change has worked, but you need to remove it when using a loop otherwise you will get a infinite msgbox xD
}
and put it in a infinite loop:
Code:
while(1);
{
if(WriteProcessMemory(hProcess, (LPVOID)0x57C2A4, &newdata, newdatasize, NULL))
{
}
}
The code above will freeze youre code by using a simple loop. There is a second wat but you have maxium of numbers a signed interger can hold so it wil stop working after some time so just use the loop above.
Code:
for (int i = 0; i >= 0; i++)
{
// here the code
}
I will continue updating the topic with more info on howto start game hacking in C++.
A preview of how you can implent freezing adresses in the first code (on the top): https://pastebin.com/ATMUPjrq