Solved multi-level pointers in the basic Assault Cube tutorial pt3

Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat

IdontMind

Newbie
Full Member
Jan 6, 2013
5
172
0
Hi,

I just really want to know this.
So I am following Fleep`s nice tut... I get to the point where he adds ptr to a ptr. He has the "add a pointer" option and I have only "Add Offset".
You can partially bypass that by just storing the address in the table/"adding manually" and then using the "find out what accesses this address/pointer". However this way it doesnt show the correct value in the table at the bottom. The offset value is irrelevant, because it just points to a previous address with offset 0.
https://idontmind.rajce.idnes.cz/nastenka/#CE_multilvlptrs_problem.jpg
In the next step you get your long list of addresses with the 3 green highlightened ones. However at this point, if I werent watching the tutorial, there is no way for me to determine the correct one because my 3rd lvl ptr does NOT show the ammo value in the table. It points to the same address as the other "green" static values.
"find out what accesses this" does not help at that point.
So in the future if I were to encounter the same problem Id be stuck. I would like to prevent that with your help guys.Id like to be able to see the dynamic value in my table too.
 
Last edited:

Rake

Cesspool Admin
Administrator
Jan 21, 2014
12,350
78,998
2,412
Offsets go from bottom to top in the cheat engine pointer view, not the other way around.

The value of the address doesn't matter, what matters is that the address you're using is for the exact correct variable that the game uses for the exact thing you're looking for. The only way to know this is to reverse engineer. If you can't do this, then keep learning and practicing.

Trial and error, just use an address that works, if it stops working for you, use the others ones.

If you don't know what you're doing, do the tutorials

https://guidedhacking.com/threads/start-here-beginners-guide-to-learning-game-hacking.5911/
 

uNdead

Newbie
Full Member
Jan 6, 2013
16
468
0
Use the Old Cheat Engine 6.1

or maybe

Right Click the Pointer -> Browse this memory region -> Tools -> dissect data/structures -> Structures -> Define New Structure -> Just Click Yes / Ok

and after that the first Address you see should be the Dynamic Addrese and the Value ( from the Pointer ) ^^
 

IdontMind

Newbie
Full Member
Jan 6, 2013
5
172
0
I finally got it. All you need to know is the address(say a 3rd lvl) and you just add the 3 offsets without typing the previous pointers. You just add them in such an order that the 3rd lvl pointer is 3rd. kind of from bottom to top if you know what i mean.
 

IdontMind

Newbie
Full Member
Jan 6, 2013
5
172
0
Wierd thing is, in his vid, Fleep is happy with the first one. I found out that almost all the addresses seem to be valid. If you change their value, it changes the ammo accordingly. So is it possible that there are multiple addresses? Or did he just stumble right away on the right one?
 

IdontMind

Newbie
Full Member
Jan 6, 2013
5
172
0
If the pointer points to the right value it will be valid to use, however unless the pointer address means to point to that address - it may change under other conditions, such as if it was a map ID value that just happened to line up with the value dynamic value for your primary guns ammo, then that pointer would only work when you where on the right map. The odds of the exact thing happening are insanely low, but the odds of something LIKE that happening are actually pretty high.

See a pointer is just a DWORD or a long, aka it takes up 4 bytes of data. They are used to show where something else is located, that is created dynamically instead of hard coded. A pointer scan just checks if the Address it is checking, Plus the value it stores, is equal to the address that the data you want is located.
I have a basic idea what pointer is. But why would it have to be always stored as the long type?(DWORD is just something like unsigned long or something along those lines)Is it a C++standart convention?

And what do you mean when you say "hardcoded" and "dynamic"? hardcoded for const objects? or for any explicitly initialized variable? A non-const could change and be very dynamic, but have the same address in the memory. And you can ofc point to it. And you can have pointers to objects that get created only in certain cases(aka dynamic in my head).How do you tell those two apart?I think that is the important question.
We can have guarantees only about const objects cuz their pointers have to be const too. But there are no const variables in this case.
 
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Community Mods