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 


What are pointers?
Goto page 1, 2, 3, 4, 5, 6, 7  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Tutorials -> Pointer tutorials
View previous topic :: View next topic  
Author Message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Fri Jan 16, 2004 12:47 pm    Post subject: What are pointers? Reply with quote

Pointers are 4 byte values that hold the the address of a memorylocation instead of a normal value.

That address is used by the game to find out where to store and look for it's data. E.g: 10 bytes after the pointer to the start of the player data is health, 14 bytes after the start of the player data is armor, 18 bytes after the player is ammo etc....

I've drawn a little sketch trying to show how pointers work. (And how to implement them in CE)



Last edited by Dark Byte on Fri Oct 01, 2004 1:55 pm; edited 2 times in total
Back to top
View user's profile Send private message MSN Messenger
emperor
Master Cheater
Reputation: 0

Joined: 16 May 2003
Posts: 470
Location: Germany

PostPosted: Wed Jan 21, 2004 2:43 pm    Post subject: Reply with quote

Looks like the solution to all address recalculation problems?
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Thu Jan 22, 2004 2:33 am    Post subject: Reply with quote

Not always...
They will propably not work or are extremely hard to find when the program uses a pointer list and finds the needed pointer by querying the class what it is. (I believe IExplore does that)

But most of the times this will solve the recalculate problem yes. (And also works in trainers you make with CE)


Oh yes,the last step of the tutorial is a pointer tutorial
Back to top
View user's profile Send private message MSN Messenger
emperor
Master Cheater
Reputation: 0

Joined: 16 May 2003
Posts: 470
Location: Germany

PostPosted: Thu Jan 22, 2004 9:58 am    Post subject: Reply with quote

You already wrote the tutorial changes in the changelog so that's no news to me. Oh yeah there's a small typo ...you wrote "evrything" . Very Happy .
edit: And it's "which" and not "wich".
edit: I didn't understand everything in the tut because...well somehow CE didn't act like the tut said it would...and suddendly without having followed the last steps CE freezes but magically the next button becomes available. Maybe I'm 2 1337 for the tut? (j/k)
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Thu Jan 22, 2004 3:34 pm    Post subject: Reply with quote

You did it right.

When pressing that button the tutorial changes the address where it stores the value, and then set a random value between 0 and 1000 at the new location. It then waits for 3 seconds (and tries to update the screen with a timer) and checks if the new value is 5000

You would never be able to find and change that value to 5000 in those 3 seconds without using pointers.

So, you did find the pointer to the address, and did freeze it to 5000

Also, that part of the tutorial doesn't require you to follow all steps. The rest is just me trying to explain why it worked, and that this value is actually pointed to by a pointer to a pointer, but that it isn't necesary to find the 2nd one (actually the first one) for the tutorial to let you go. (you managed to cheat on it , and thats what counts)


And about the tutorial not being exactly what it should be is because I changed a few things on the pointer part after writing the tutorial. (especially the part where you type in the pointer info)
Back to top
View user's profile Send private message MSN Messenger
emperor.
Guest





PostPosted: Fri Jan 23, 2004 10:47 am    Post subject: Reply with quote

I see...i thought it was weird that although there are steps left CE seemed to have completely frozen and i was unable to do a thing.
Back to top
Yugo_Prowers
Newbie cheater
Reputation: 0

Joined: 08 May 2004
Posts: 10
Location: U.S.A.

PostPosted: Sat May 08, 2004 12:38 pm    Post subject: ??? Reply with quote

Ok so this is what keeps changing the addresses I get that part. But I still don't think I get how to find them... Also what do you change the value to when you find them?
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
emperor
Master Cheater
Reputation: 0

Joined: 16 May 2003
Posts: 470
Location: Germany

PostPosted: Sat May 08, 2004 5:30 pm    Post subject: Reply with quote

Somehow i think the second you add them they'll be replaced with useless code...
this should for example be able to stop a game from reducing your health ...i think..
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Sat May 08, 2004 6:31 pm    Post subject: Reply with quote

I think you're thinking about the option to replace code with code that does nothing.

When you add a pointer it will use the values you enter to calculate the address of the variable you want.
Because it is continuesly calculating the address it should always point to the right address, even if the address changes during play. (or when you restart the game)

Also, when adding a pointer you'll have to read from the bottom to top
first the first pointer address
that address contains a 4 byte value pointing to a address.
The following offset tells ce with how much ce must increase that value to get to the new address. (You can add even a pointer to a pointer to a ..... , till you're out of memory, or your cpu stops responding)

Check out some of the tables I've put up (Assuming you've got those games) There's some information telling you what it reads and what the final address will be. (clicking on change address)
Back to top
View user's profile Send private message MSN Messenger
Yugo_Prowers
Newbie cheater
Reputation: 0

Joined: 08 May 2004
Posts: 10
Location: U.S.A.

PostPosted: Sun May 09, 2004 4:48 am    Post subject: Very happy cheater... Reply with quote

Very Happy Cool I just tried it and it worked thanks alot guys...
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
emperor
Master Cheater
Reputation: 0

Joined: 16 May 2003
Posts: 470
Location: Germany

PostPosted: Wed Oct 06, 2004 2:23 pm    Post subject: Reply with quote

Question~ If there is something like [EDX+EDI*4],eax then in the [] there are quiet a lot of things, so...what would be the offset? EDI*4? If yes then it's just the game's fault...if it's my fault please tell me what to enter.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Wed Oct 06, 2004 3:57 pm    Post subject: Reply with quote

the pointer will propably be edx
the offset will propably be edi*4

for example if it's a record or array where each element has 4 bytes:
pointer to record=00801000 (so in this case edx)

to access the first element in this record (or array) give edi=0 so it return
00801000+0*4=00801000

to access the 2nd element give edi=1:
00801000+1*4=00801004

and the 12th will be
00801000+0c*4=00801030


---
This method can be used in games where money (or someother things) of each player is actually stored in the same array.
money[0] , money[1],money[2],money[3] (for a 4 player array)

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping


Last edited by Dark Byte on Sat Oct 23, 2004 8:10 am; edited 1 time in total
Back to top
View user's profile Send private message MSN Messenger
Snow1337
Catastrophic Cheatah
Reputation: 1

Joined: 12 Oct 2004
Posts: 183
Location: Your, Computer

PostPosted: Fri Oct 22, 2004 5:24 pm    Post subject: Reply with quote

Very nice explanation of pointers. Smile
_________________
Back to top
View user's profile Send private message Visit poster's website
me
Grandmaster Cheater
Reputation: 2

Joined: 24 Jun 2004
Posts: 733
Location: location location

PostPosted: Sat Oct 23, 2004 2:22 am    Post subject: Reply with quote

and the 12th will be
00801000+0c*4=008010c0 ??????


is it 00801000+0c*4=00801030

just wondered if I got it wrong or you made a typo

my brain hurts sometimes Shocked
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Sat Oct 23, 2004 8:11 am    Post subject: Reply with quote

yes, it should be 00801030

no idea why I made it c0

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Tutorials -> Pointer tutorials All times are GMT - 6 Hours
Goto page 1, 2, 3, 4, 5, 6, 7  Next
Page 1 of 7

 
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