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 


Unable to find a pointer to my address of value I have
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Michaelc
Cheater
Reputation: 0

Joined: 15 May 2016
Posts: 47

PostPosted: Sun May 15, 2016 12:23 pm    Post subject: Unable to find a pointer to my address of value I have Reply with quote

With a game, I found 5 address, each containing the precise value I specified, but when I select find what access this address and get the hex number and do a 4 bytes search for the pointer, it doesn't return anything with all 5 address that I tried this on!

What do I do now?

thx!
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4702

PostPosted: Sun May 15, 2016 1:07 pm    Post subject: Reply with quote

Use the pointerscanner.

If you know assembly, you can backtrace the program to look at how it's calculating that address and use that pointer path.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Michaelc
Cheater
Reputation: 0

Joined: 15 May 2016
Posts: 47

PostPosted: Sun May 15, 2016 1:35 pm    Post subject: Reply with quote

i tried running the scanner, but i ended up with like 3 million paths?

How do I know which one is a good one to go after?
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4702

PostPosted: Sun May 15, 2016 1:36 pm    Post subject: Reply with quote

Restart your computer, find the address of that value again, and rescan the list with that new address.
_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Michaelc
Cheater
Reputation: 0

Joined: 15 May 2016
Posts: 47

PostPosted: Sun May 15, 2016 1:39 pm    Post subject: Reply with quote

but it apears the address of the said value changes everytime!
how do you get away with rebooting? there has to be a way.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4702

PostPosted: Sun May 15, 2016 1:41 pm    Post subject: Reply with quote

That is to be expected. The purpose of finding a pointer to your value is so that you don't have to go through the process of finding it every time. So, do the initial pointer scan, remember where you saved the pointer scan file, restart your computer, find the address again, open the list up again, and rescan that list with the new address.
_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Michaelc
Cheater
Reputation: 0

Joined: 15 May 2016
Posts: 47

PostPosted: Sun May 15, 2016 1:46 pm    Post subject: Reply with quote

ParkourPenguin wrote:
Use the pointerscanner.

If you know assembly, you can backtrace the program to look at how it's calculating that address and use that pointer path.


how do I use assembly in this case? Is there a crash course on assembly?

Thx!
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4702

PostPosted: Sun May 15, 2016 1:55 pm    Post subject: Reply with quote

There's this, but it only talks about the very basics, oversimplifies a lot of things, and is easy to misconstrue.

You'd be better off getting that address from an instruction that access it. See this topic ("injection copies" section) for information on that.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
cooleko
Grandmaster Cheater
Reputation: 11

Joined: 04 May 2016
Posts: 717

PostPosted: Sun May 15, 2016 3:23 pm    Post subject: Reply with quote

ParkourPenguin is giving really good advice. There isn't a shortcut to finding the best pointer or finding the instruction that modifies the value you want.

For pointers, if you have the first offset (for example A0), then when you perform the pointer scan, you can tell the pointer scan that the first offset must be A0 before you start the scan, this will save time and make your searching easier.

Once you have completed the first scan, there is no way around rebooting the computer (or even better yet, using a different computer). You have to reset the state of the game so that you have the best chance to find the correct pointer. Once you log back into the game, find either the value or the address, you can rescan for the value or address. I would recommend using address, as when I use value it seems to take much longer (when searching millions or billions of pointer chains, it can take a few hours). Then you keep rebooting and performing a new rescan until the pointers stop shrinking in value. Once this occurs, you simply try each one and if it breaks after a few games, just select another one from the list.

For the assembly method, it is fairly complicated, but at the same time much easier and less time consuming (until it isnt). (please note that ParkourPenguin referred to using the assembly to find the pointer structure, but this explanation is to use asm to to always edit the value)

Since you seem to want to edit a precise value, I think assembly is the way to go. add all addresses into your address list, change the first address to +1, second address to +2, third address to +3, fourth address to +4, and fifth address to +5. You can be more dramatic (recommended) and use 10, 20, 30, 40, 50 or any values you desire. The objective is to see which address is actually in charge of your value. In game, modify the value by either getting hit, purchasing something, or however you need to.

Observe which address the value changed to. One of the addresses worked (or none of the addresses worked). If none of the addresses worked, then you need to find another way to approach the value you want (such as using item amounts instead of trying to hack gold, then sell those items).

With the value that worked, right click, and select "see what writes" or "see what accesses." I always start with writes and move to accesses if the writes doesn't pan out. This is because instructions that access are typically reused, so will require some extra steps to filter the values.

When you find the instruction that writes, right click and select disassemble this instruction.

Then right click in the memory view and select see what addresses this instruction accesses.

Perform the action that triggered the instruction again. If only one address appears, then you have a strong suggestion you found an instruction that only accesses your value, so it is safe to edit.

Make sure the instruction is selected in memory view, select tools, and select auto-assemble.

In the new window that pops up, just press ok several times to accept the default values (as you become more skilled, you will likely edit the name).

Select Template menu option, AOB Injection, press ok twice.

If the AOB scan works (it will tell you in the aobscanmodule the auto populates), then you can edit the assembly code associated with your instruction to do what you want to do (for instance, set the value to 100 or something).

Here is a helpful guide: forum.cheatengine . org / viewtopic.php?t=570083

Good luck! I find editing the instructions themselves to be much quicker than using pointers (unless the instructions are needlessly complicated).
This guide skipped every more complicated scenario that can arise with ASM, just search google for cheatengine *whatever is confusing to you* and you will find numerous guides or explanations to aid you in your understanding.
Back to top
View user's profile Send private message
Michaelc
Cheater
Reputation: 0

Joined: 15 May 2016
Posts: 47

PostPosted: Sun May 15, 2016 3:26 pm    Post subject: Reply with quote

my game, when run, have 2 game.exe in the task manager window!

Also, my pointer scan of a value of character coordinates returned 0 pointers!

Is it possible that the pointer i am looking for is not in the game.exe i open processed and is in the other game.exe?





also, my extra info windows says

01A16FF0 - fstp qword ptr [edi + 04]



does ptr here mean something special?

when I try to find the pointer like the tutorial taught me, I found out that searching for it by copy and pasting the "The value of the pointer needed to find this address is probably C7E4D920" into the search, it doens't return anything!

Also, C7E4D920 here is exactly the address that i used find out what accessed it. I mean, I searched for my x coordinate and found 5 addresses that have it, and while checking out the extra info with the "find out what access this address, the value it recommends to try is the same address I already have with the value scanning!





I am not trying to change a few numbers in the game, I am trying to extract useful information such as health or coordinates so I can use it in my bot that will be smart enough to play the game for me. So not going for editing here.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4702

PostPosted: Sun May 15, 2016 4:11 pm    Post subject: Reply with quote

Those are two different processes with two different virtual address spaces. I doubt it contains a pointer to a value in another process.

I'm guessing you left all the pointer scan settings at their default values. Try increasing the max level and/or max offset until you do find something.

"qword ptr" means the value at the memory address that instruction is accessing is 8 bytes long. The only thing that means is that you're working with a double value.

The reason why you're not finding anything by searching for the pointer manually is probably because the game already offset the edi register from the base of the structure that double is a part of. Something like this:
Code:
lea edi,[ebx+1BC]
...
fstp qword ptr[edi+04]

You'd have to analyze the assembly before that instruction to get a better guess as to what's the base of the structure the value is in.


I still think you'd be better off hooking that instruction and getting the address that way.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Sun May 15, 2016 4:17 pm    Post subject: Reply with quote

Depending on the target, you may be out of luck using traditional methods.

If you can provide the name, platform/environment and language of the target, it might help to determine how you should proceed. For example, if the game is java-based, online or being emulated etc.. may all have different answers.
Back to top
View user's profile Send private message
Michaelc
Cheater
Reputation: 0

Joined: 15 May 2016
Posts: 47

PostPosted: Sun May 15, 2016 4:52 pm    Post subject: Reply with quote

star Ward the old republic. online game. win 10 64bit

IS it allowed to talk about online game?
i am trying to write a bot, not to change my health or money.
thx
Back to top
View user's profile Send private message
Michaelc
Cheater
Reputation: 0

Joined: 15 May 2016
Posts: 47

PostPosted: Mon May 16, 2016 11:04 am    Post subject: Reply with quote

"what access this address" gave me a hex number, but this number cannot be found in new scan!
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon May 16, 2016 1:01 pm    Post subject: Reply with quote

That's an MMORPG with paid subscription. You're probably not going to have any luck with that. Also, such games are prohibited for discussion here.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
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