I Made this tutorial for begginer, its the second thing you have to know before you even start to make hacks. (The first one is programing ofc ;D)
Ok, so let's do that step-by-step.
First let's open Battlefield 3 and Cheat Engine.
Important: In the tutorial you will see difference offsets and address, Just igonore that I had confusion pictures. Just follow the word and with the pictures you can see where r u.
For this tutorial I'll show you how to know if the chat is open or not.
We will take the base address + the offset and we also will make a little the function that check it.
First thing you have to do is to open bf3.exe with Cheat Engine.
The variable the hold that information it a byte.
so, change in Cheat Engine the 'Scan Type' to Byte.
Now, open the chat in Battlefield 3, and search in Cheat Engine 1. ('First Scan')
Basicly now what you need to do is just close the chat, put '0' in the value and click 'Next Search'.
Then, open the chat and do the same but now with the value '1'.
Repeat it until you got 1 ~ 5 address.
Tips to get it faster:
- Go into vehicles
- die and the chat also will be close automatically.
- Spam the 'Next Search'
- In the last few also open the 'ESC' menu.
- In the last few, just suicide.
In the way other variables will change and your byte of the 'Chat' will stay there.
Now, I have 3 address:
let's move all to the bottom. And finally let's start with the fun stuff ;D
Select the all three address, the press the "Copy all selected items to .."
Let's take the first one and right click > Find out what writes to this address.
Click in the dialog 'Yes', Go to the game and change the variable of the chat. (If the chat open close it, or if he's close open it
That what we have. now you can see the the our variable of the chat store in ESI and our offset is 264.
** Just ignore that picture, in your Cheat Engine window the '[esi+64]' should be '[esi+264]'.
Here our address:
Let's take that address and search it in Cheat Engine. (Make sure that the 'Hex' checkbox are checked and you have to change the byte to 4)
You in the green one the base address ? (0236241C)
Let's check and see if this is the correct one.
Click on 'Add Address Mamnually".
Check the 'pointer'
Now put the address (0236241C) and the offset (264)
and press OK.
You can also check it, go to the game open and close the chat and you will see the number change.
But why is a big numbe ? why its just not 0 and 1 ?
Well, we changed to 4 bytes. Just change it to 1 Byte.
(Double click on the 4 Bytes)
If you still didn't found the right address, what you can do is see the pointer of your address.
To do that just right click on the address and choose now "Find out what accesses to this address"
Now choose the first option "Find out what accesses to this pointer"
Go to game and open / close again.
then you see:
And just do what we did again.
Now with our base address, we can build our C++ function.
credit: Xerwell . IceCube
DWORD GetChatStatus(HANDLE hProc)
ReadProcessMemory(hProc, (LPCVOID)(0x0236241C), &Buffer, 4, NULL);
ReadProcessMemory(hProc, (LPCVOID)(Buffer + 0x264), &Value, sizeof(Value), NULL);