Pointer always fail to point to correct address

Anything Cheat Engine related, bugs, suggestions, helping others, etc..
Post Reply
bshi02
What is cheating?
What is cheating?
Posts: 3
Joined: Tue Apr 07, 2020 8:30 am
Reputation: 0

Pointer always fail to point to correct address

Post by bshi02 »

I found health address with Cheat Engine, and When I did pointer scan for this health address, I found that there is more than a hundred thousand address of pointer.
But After exiting and relaunching game application,It seems that Among a hundred thousand pointer, there is absolutely no pointer which point to correct health address at all .
All of them displays ?? question marks or point to peculiar address where is very far from correct address.
And I set level 8 and max offset size to 8192 for pointer scan and try to pointer scan for 10 hours and It used up 200GB which is my last available space for hard drive, and in spite of my efforts,I also failed to locate a pointer which must point to correct health address...

Is there any other way to get correct address even though all of the pointer, which I have found, always point to incorrect address as soon as I relaunching game?

Paul44
Table Makers
Table Makers
Posts: 752
Joined: Thu Jul 27, 2017 9:02 am
Reputation: 437

Re: Pointer always fail to point to correct address

Post by Paul44 »

^ some suggestions: (see also [ [Link] ])
1. you should always mention the game you are working on; more chance that people have worked on similar game (series/engine)... and are inclined to reply back...

2.a 'red' flags will importantly have an effect on list_result
- 'first element...': preferably enabled as it tends to give by far best/stable results
- 'offsets per node': start with '5', and increase if little/no results
- 'max offset': as above, start with '5'...
(^ higher also means more time/diskspace consuming !)

2.b if CE returns a big list, then scrolling through it makes no sense; start evaluating below '10/20~000'
(you can still start adding chains for research purposes, but consider them "unreliable")

2.c if you get good results, ptr_scans in a permanent table tend to become useless eventually !!!
(it might continue working on your end, but other factors - cpu/ram/etc - will have their effect accordingly)

Approach:
a. after a week (or 2), add some of the working ptr_chains to your table
(just quiting/relaunching the game is far from suf/efficient)
b. create a data structure and use the starting address of the ptr_chain as base
c. parcour the chain, and add every "ptr_offset" to your table
(iow add the address at found offset that points to the next structure; NOT the base of that next structure !)
d. 'find out what...' on these addresses to see if they return opcode.
(if not successful, add some addresses in each of them (sub)structures to evaluate)
e. if you get hits, use that opcode to collect a final "base_pointer", that will lead to your focused value (such as health)
=> iow your health might be collected using a base several offsets "away" from your value... ! ~ in fact, it is a good idea to always start with a pointer in your addresslist - even if you collect the value directly from the structure - as CE will then take care of invalid ptrs/addresses ~ read: "less chance of crashing".

f. if ptr_scans remain "useless", then you'll need to use AOBs (which you still need to do anyways); either on your 'health' value, or some values within that same structure

ps: some games/engines are simply "bad news" in regards to ptr_scans (eg COD series)

User avatar
islentev
Noobzor
Noobzor
Posts: 7
Joined: Sat Mar 18, 2023 1:33 pm
Reputation: 3

Re: Pointer always fail to point to correct address

Post by islentev »

bshi02 wrote:
Fri Mar 17, 2023 4:36 am
Is there any other way to get correct address even though all of the pointer, which I have found, always point to incorrect address as soon as I relaunching game?
Hello. I've had similar issue with pointers becomes invalid after a while. After a search over the Internet I have learned about AOB injection and how to get correct address from opcode what accesses the value of interest. I'm new to Cheat Engine, but it worked in the end.
Simplified strategy would be like this:
  • Find current address of the value.
  • Find opcode what access this address.
  • Create AOB injection and use readmem() command to copy address to your own variable (let's call it my_pointer for example).
  • While injection is active, you can use my_pointer as a pointer to you value.

bshi02
What is cheating?
What is cheating?
Posts: 3
Joined: Tue Apr 07, 2020 8:30 am
Reputation: 0

Re: Pointer always fail to point to correct address

Post by bshi02 »

Thank all of you for your helpful reply!
I think that my comp spec is not sufficient( i3 2500,8G ram) for trying out pointer scan with more increased number for options.
So I stick to using AOB injection for getting correct health address
In fact,I narrowly succeed to make invincible code with AOB injection,But I don't know how to make variable in auto assemble script in order to use it for adding health address in cheat engine table...

Paul44
Table Makers
Table Makers
Posts: 752
Joined: Thu Jul 27, 2017 9:02 am
Reputation: 437

Re: Pointer always fail to point to correct address

Post by Paul44 »

^ first and foremost, ask yourself this question: "do I enjoy researching this info that much that I'll be doing more of this stuff in the future for sure ?". If the answer is 'yes', then parcour the training sessions offered by CE (check out the [Tutorials ~ Generic Tutorials] section in that regard).
Also: load up some/several tables and see how they do it...
Keep in mind: the learning curve is steep at first; it'll take you 2~3 months to get you comfortable with the basics (and yes, we all have to get past that threshold). And no, we are not born with that knowledge :shock:

> "pointer scan with more increased number": as far as I know/experienced, the "only" bottleneck with ptrscans is diskspace, not cpu/ram. Iow if you get your disk filled, reduce them numbers: start with '5' (if i recall well, standard is '5'), then scan with increasing 'max level' (+1 per effort) to see how you are going... (and evt experiment with 'max offset')
That said: at some point you will still need to use some AOB-script...
=> so get into that first - you will also get working tables far easier/quicker once you get the hang of it !

btw: 64bit games tend to produce far bigger ptr_scans then 32b (which kinda makes me conclude that you are tackling a 64b game)... named... :ph34r:

Post Reply

Who is online

Users browsing this forum: No registered users