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 


How to find pointer if there is no offset?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
Akikyo
Newbie cheater
Reputation: 0

Joined: 19 Feb 2015
Posts: 14

PostPosted: Thu Feb 19, 2015 8:28 am    Post subject: How to find pointer if there is no offset? Reply with quote

Can't figure out how to find him. Basically, I dont have problem with pointers, was doing this several times. Now I struggling with pointer that dont have offest.

Found correct address "12B55ADC" for X coordinate. When im looking what writes to this address I can see "[esi],ecs", that show exact the same "12B55ADC".
Looking for that address make no sense. Its not way that would give me pointer.

So I checked what access that address and found eax,[edx]....

Writes:

00497B07 - 89 0E - mov [esi],ecx <<
00497B09 - 89 56 04 - mov [esi+04],edx
00497B0C - 89 46 08 - mov [esi+08],eax

1. X
2. Y - propably, adding 4 bytes
3. Z - same here

Access:

0049D9BD - 8B 02 - mov eax,[edx] <<
0049D9BF - 8B 4A 04 - mov ecx,[edx+04]
0049D9C2 - 8B 52 08 - mov edx,[edx+08]

Any advice? I tried method "pointer scan" doing 3 times. From 30kk reduced to 15k but couldnt find address + offest.

I looked for inject method, but dont understand how should I use this in that case yet.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

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

PostPosted: Thu Feb 19, 2015 9:01 am    Post subject: Reply with quote

mov [esi],ecx = mov [esi+00],ecx
mov eax,[edx] = mov eax, [edx+00]

Quote:
Found correct address "12B55ADC" for X coordinate. When im looking what writes to this address I can see "[esi],ecs", that show exact the same "12B55ADC".
Looking for that address make no sense. Its not way that would give me pointer.

it does make sense
you did a find what accesses the ADDRESS 12B55ADC to find the offset (0)
and now you need to find the addresses that contain the VALUE 12B55ADC-0

_________________
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
Akikyo
Newbie cheater
Reputation: 0

Joined: 19 Feb 2015
Posts: 14

PostPosted: Thu Feb 19, 2015 10:27 am    Post subject: Reply with quote

Quote:
it does make sense
you did a find what accesses the ADDRESS 12B55ADC to find the offset (0)
and now you need to find the addresses that contain the VALUE 12B55ADC-0


Said "make no sense", because that didnt give me right pointer, after restart pointer was useless.


Well once again did what you say, all the time they are changing... (I didnt restart game, every screenshot made in period 10 minutes. Sorry for no description in table, but i did not change any position of them)

Do I something wrong? Ehm.



Value 5.png
 Description:
After few minutes, Im not able to get any Value...
 Filesize:  30 KB
 Viewed:  17016 Time(s)

Value 5.png



Value 4.png
 Description:
New scan
 Filesize:  41.94 KB
 Viewed:  17016 Time(s)

Value 4.png



Value 3.png
 Description:
Added 3 pointers, but after few minutes 2 of them changed itself
 Filesize:  35.53 KB
 Viewed:  17016 Time(s)

Value 3.png



Value 2.png
 Description:
After few minutes
 Filesize:  30.2 KB
 Viewed:  17016 Time(s)

Value 2.png



Value 1.png
 Description:
Looking for VALUE
 Filesize:  33.53 KB
 Viewed:  17016 Time(s)

Value 1.png


Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

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

PostPosted: Thu Feb 19, 2015 10:55 am    Post subject: Reply with quote

Never use green addresses belonging to system dll's (7*******)
You need to go deeper

_________________
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
Akikyo
Newbie cheater
Reputation: 0

Joined: 19 Feb 2015
Posts: 14

PostPosted: Thu Feb 19, 2015 11:09 am    Post subject: Reply with quote

Quote:
Never use green addresses belonging to system dll's (7*******)


I knew that smells Smile Good to know.

Quote:
You need to go deeper


By deeper you mean check what access that 3 addresses and so on?? 0008E4C0 etc? Now im not able to do this, will later.

UPDATE:

Well when im going deeper my game client crashes, thats annoying. After that I need to find once again adress...

That 3 addresses that's always appear while looking for 12B55ADC doesnt contain any information about access or write - it's blank.

0008E4C0
0008E528
0008E588

So I tried to find value of that 3 addresses and one of them 0008E4C0 had another 3 - check inside, but also blank. After one minute they value changed to 0.

When I scanned again 12B55ADC, list of values raised from 3 to 15 (like in screenshoot 4) but unfortunately after accesing one of them game crashed...

Im confused Confused

UPDATE 2:

I found pointer to my X coordinate. Just taking green one address while looking for float coordinate value from game. Every time I had to take one of 15-30 values that had exact coordinate. I knew that but didnt look for this because that wouldnt solve my problem. I always was looking for address which change my postion in game - so that would avoid me from programming direction (calculus angle etc). Adress which depend on motion in game. So I could easly read and write to memory where bot should move.

Any advice how to find pointer for motion address without offset? Doing my best, but crashing and blank info annoy.
Back to top
View user's profile Send private message
Akikyo
Newbie cheater
Reputation: 0

Joined: 19 Feb 2015
Posts: 14

PostPosted: Thu Feb 19, 2015 7:15 pm    Post subject: Reply with quote

I give up, completly stuck.


motion 5.png
 Description:
While running in game the values are changing. If stop they are back to previous.
 Filesize:  50.85 KB
 Viewed:  16942 Time(s)

motion 5.png



motion 4.png
 Description:
 Filesize:  54.48 KB
 Viewed:  16942 Time(s)

motion 4.png



motion 3.png
 Description:
 Filesize:  62.61 KB
 Viewed:  16942 Time(s)

motion 3.png



motion 2.png
 Description:
 Filesize:  76.49 KB
 Viewed:  16942 Time(s)

motion 2.png



motion 1.png
 Description:
 Filesize:  67.44 KB
 Viewed:  16942 Time(s)

motion 1.png


Back to top
View user's profile Send private message
SteveAndrew
Master Cheater
Reputation: 30

Joined: 02 Sep 2012
Posts: 323

PostPosted: Thu Feb 19, 2015 11:45 pm    Post subject: Reply with quote

Well if you're not having any luck finding a pointer, why not just script it?

Code:

{$lua}

function AddPointer(pointerName, pointerOffset)
   local mr=getAddressList().createMemoryRecord()
   mr.Address="XYZPointer"
   mr.OffsetCount=1
   mr.Offset[0]=pointerOffset
   mr.Description=pointerName
   mr.Type=vtSingle
end

xPtr=getAddressList().getMemoryRecordByDescription("X Pointer")
if xPtr==nil then
   AddPointer("X Pointer",0)
   AddPointer("Y Pointer",4)
   AddPointer("Z Pointer",8)
end

{$asm}

[enable]
alloc(PointerGrabber,1024)
label(return)
label(XYZPointer)
registersymbol(XYZPointer)

PointerGrabber:
mov [XYZPointer],esi
mov [esi],ecx
mov [esi+4],edx
jmp return

XYZPointer:
dd 0

497b07:
jmp PointerGrabber
return:

[disable]

497b07:
mov [esi],ecx
mov [esi+4],edx

dealloc(PointerGrabber)
unregistersymbol(XYZPointer)

_________________
Back to top
View user's profile Send private message
Akikyo
Newbie cheater
Reputation: 0

Joined: 19 Feb 2015
Posts: 14

PostPosted: Fri Feb 20, 2015 12:21 pm    Post subject: Reply with quote

Thank you for your script. Sooner or later I should start learn this. That motivated me to learn Lua, and some aspects of assembler. That scripting is really efficent method of injection.
But unfortunately that what I see it's not static pointer. All the time changing addresses. For example PointerGrabber = 05850000. After restart everything is useless.

I feel im close but also far away.
Is that normal or wrong? That might be really advanced?



pointer.png
 Description:
 Filesize:  13.52 KB
 Viewed:  16864 Time(s)

pointer.png


Back to top
View user's profile Send private message
SteveAndrew
Master Cheater
Reputation: 30

Joined: 02 Sep 2012
Posts: 323

PostPosted: Sat Feb 21, 2015 5:18 pm    Post subject: Reply with quote

Yeah that's normal... Why do you want it to be static and not change? Isn't the whole point being able to get to the address each game load without having to manually find the address again?

What are you trying to do specifically? Addresses become different all the time, it's a part of this whole cheating game Wink What is important is that regardless of where something is located in memory that you know where it is, or how to get back to it with minimal effort.

It's the values that you want to modify that matter, not where they happen to exist at! Remember that!

_________________
Back to top
View user's profile Send private message
Akikyo
Newbie cheater
Reputation: 0

Joined: 19 Feb 2015
Posts: 14

PostPosted: Sat Feb 21, 2015 5:39 pm    Post subject: Reply with quote

Quote:
Yeah that's normal... Why do you want it to be static and not change? Isn't the whole point being able to get to the address each game load without having to manually find the address again?

What are you trying to do specifically? Addresses become different all the time, it's a part of this whole cheating game Wink What is important is that regardless of where something is located in memory that you know where it is, or how to get back to it with minimal effort.

It's the values that you want to modify that matter, not where they happen to exist at! Remember that!


Oh you didnt understand me. My bad Lame

I mean that 3 combined screenshoots dont show Pointers each restarted game. They are changing all the time in on process game.

Launching again game, pointers are no longer pointing to addresses "????????". They works only if I execute script.

Each execution script changes PointerGrabber.

At least, if there is not solution. How about assembler code injection in C#? (Address is always 12***ADC - im able to find him in less then 30 sec) - that what comes to my mind Wink
Back to top
View user's profile Send private message
SteveAndrew
Master Cheater
Reputation: 30

Joined: 02 Sep 2012
Posts: 323

PostPosted: Sat Feb 21, 2015 6:16 pm    Post subject: Reply with quote

Ah okay... That's because more than just your player coordinates are being manipulated at that code location. I was only hoping that wasn't the case although I knew it was likely.

When you have your coordinate address you want, try a find what accesses again. Then see if any code that comes up accesses only your coordinates and not anything else (enemies, entities, game objects, etc). Right now you've got a mixed bag, lots of stuff is flowing through there.

You can use the relatively new CE feature to find this out, after selecting this option and clicking yes.


Then under the "Count" header there will be a number in parenthesis, in my example it shows (1) in a simple game I just loaded up quickly. If it's higher there isn't any listings with (1) and they're all increasing then it's going to get tricky. You can also double click each listing and it'll show you the addresses it's accessing.

To manually figure that out, if you aren't using that option you would go to each instruction listed in memory viewer and right click the instruction and choose "Find what addresses this instruction accesses" Very Happy

If you can find a piece of code in the game that ONLY accesses or writes to your coordinates of interest then you can also script that, use that to get the coordinate pointer and then use this hook that writes to modify it.

Where it gets tricky is you have to find a way to be able to differentiate between your coordinate address and everything else. If you end up having to do that, this might help you: http://forum.cheatengine.org/viewtopic.php?t=530548&postdays=0&postorder=asc&start=0

_________________
Back to top
View user's profile Send private message
Akikyo
Newbie cheater
Reputation: 0

Joined: 19 Feb 2015
Posts: 14

PostPosted: Fri Feb 27, 2015 5:15 pm    Post subject: Reply with quote

Hey!

Would thank you for your help, finally I found offest by structure method.

Hope it will help people in trouble. Just cerfully study link above.

Regards



found.png
 Description:
 Filesize:  95.76 KB
 Viewed:  16607 Time(s)

found.png


Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking 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