Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


To Dark Byte or bitterbanana or advanced cheater (Pointer)

 
Post new topic   This topic is locked: you cannot edit posts or make replies.    Cheat Engine Forum Index -> Cheat Engine Tutorials -> Pointer tutorials
View previous topic :: View next topic  
Author Message
budi_tju
Newbie cheater
Reputation: 0

Joined: 03 Jun 2005
Posts: 13

PostPosted: Fri Sep 30, 2005 11:20 pm    Post subject: To Dark Byte or bitterbanana or advanced cheater (Pointer) Reply with quote

Ok, could all of you discuss more details about levels of pointer?


Thanks in advanced!
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 342

Joined: 09 May 2003
Posts: 20062
Location: The netherlands

PostPosted: Sat Oct 01, 2005 12:11 am    Post subject: Reply with quote

Lets say that in a program you allocate memory for a object like the structure of a player.
When it allocates that block of memory it gets the start address of that block, and stores that somewhere so it can find it back later when needed.
The location it stores it is called a pointer.

Let's say that for player1 the game allocates a 100 bytes long block at 00800000.
The game then stores 00800000 at a spot where it can find it again, it may be in a structure or in a static address.
And lets say that 4 bytes after the start of the player structure is the health of the player, so 00800004.

To find that address you'll then need the pointer(address that stored 00800000) and the offset (4)

When it stores the pointer at a static address you're done, but if it stored it in a structure, (e.g playerlist may be a array of player structures) you'll have to go through the playerlist.

When the playerlist gets allocated it also needs to store the address of the playerlist somewhere, again, may be a static address or yet again in a structure.
Lets say the playerlist is allocated at 00700000 and stored in a static address at 00410080.
And lets assume that the first element of the playerlist is you (so offset 0)

so to find the address of health for yourself you'd have to go:
read 00410080
00410080 holds the value 00700000
offset you need is 0 so read 00700000
00700000 holds the value 00800000
offset is 4 so read 00800004
00800004 holds the health of your player

in cheat engine you'd write this down by clicking add pointer twice
then from the bottom to top:
baseaddress=00410080
offset1=0
offset2=4

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Back to top
View user's profile Send private message MSN Messenger
budi_tju
Newbie cheater
Reputation: 0

Joined: 03 Jun 2005
Posts: 13

PostPosted: Sat Oct 01, 2005 12:07 pm    Post subject: Reply with quote

Wew, thanks for the reply.

Very nice and clear explanation. So, if i want to search the static address of my character's health (just say, 100HP):
1. search for the 100 value as 4 bytes type.
2. increase/decrease my current HP. Let's say, it's increase to 110
3. search for the next scan 110 as 4 bytes type.
4. repeat it until got 1 or 2 addresses.
5. pick the first address, let' say 00800000, use "Find out what accesses this address"
6. Let's say i got the address value 00800004 from the point 5.
7. search with the new scan for 00800004 as 4 bytes.
8. got 1 address: 00700000. Now, change this address as a pointer with offset 4.
9. next, search with the new scan for 00700000 as 4 bytes.
10. got 1 address: 00410080. Now "Find out what accesses this address". Ok, from the information displayed on the screen:
...
mov eax, [00410080]
...
11. because this address is in the brackets, we can assume this is as a base pointer address (i read this from somewhere on this forum).
12. change this address, 00410080 as a pointer with offset zero.
13. add a new pointer as the point 12 pointed with offset 4.
14. done!

Ok, correct me if i'm wrong!

Thanks so much, DarkByte!
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 342

Joined: 09 May 2003
Posts: 20062
Location: The netherlands

PostPosted: Sat Oct 01, 2005 12:44 pm    Post subject: Reply with quote

Almost correct.
but for step 5:
you're scanning for health, so the address you'll eventually find will be 00800004
then use "find out what accesses/writes to this address" and you'll likely find instructions like
mov [eax+4],edx (or something close with the +4 thing)
if you look at the value of eax it'll hold the value 00800000

then continue with step 7 but scan for 00800000 (good thing this is a example, because I really hate pointers with such a value, you'll find too many...)

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Back to top
View user's profile Send private message MSN Messenger
budi_tju
Newbie cheater
Reputation: 0

Joined: 03 Jun 2005
Posts: 13

PostPosted: Sat Oct 01, 2005 10:26 pm    Post subject: Reply with quote

Thanks for correct me, Dark. I'll take a practice from your step by step example step.
Thanks, it's so helpfull.

_________________
My english is bad. I do my apologize.
Back to top
View user's profile Send private message
budi_tju
Newbie cheater
Reputation: 0

Joined: 03 Jun 2005
Posts: 13

PostPosted: Mon Oct 03, 2005 9:53 am    Post subject: Reply with quote

Some questions about static pointers. Do the static pointers address will be changed when the developers changed the source codes of the games?

Let's say game A source codes like this:

Source codes before changed, let's say the static address of the health is 0D8900FE

class Character
{

...
string name = "";
int health = 0;
...

}


Source codes after changed
class Character
{
...
string name = "";
... // int health = 0; now is moved to the line of 10

int health = 0;
...
}

Do the static pointers of health is still the same, 0D8900FE, or have been changed?



Regard,

Zhu

_________________
My english is bad. I do my apologize.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 342

Joined: 09 May 2003
Posts: 20062
Location: The netherlands

PostPosted: Mon Oct 03, 2005 10:06 am    Post subject: Reply with quote

Yes, that is possible.
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Back to top
View user's profile Send private message MSN Messenger
budi_tju
Newbie cheater
Reputation: 0

Joined: 03 Jun 2005
Posts: 13

PostPosted: Wed Oct 05, 2005 12:54 pm    Post subject: Reply with quote

Thanks, Dark.

Ok, maybe my last question:

Would u write a book about game cheating and hacking, especially game online?


Regard,

Zhu.

_________________
My english is bad. I do my apologize.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 342

Joined: 09 May 2003
Posts: 20062
Location: The netherlands

PostPosted: Wed Oct 05, 2005 1:06 pm    Post subject: Reply with quote

I really hate writing, but with luck sometimes i'll write a tutorial in the tutorial section.
Oh, but don't expect any online gamehacking tutorials from me.

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies.    Cheat Engine Forum Index -> Cheat Engine Tutorials -> Pointer tutorials All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites