I am a little conceptually confused over how cheatengine evaluates pointers and their values.
I did the usual way of searching for a value in game, in my case it is the char level. I found a most likely value/result and attached a debugger to find out what access it. then i searched for the address of the result i initially found and obtained the address of the base pointer to level.
As per normal i performed "Add address manually" for the pointer i have found in CE, inputted the base pointer and the suggested offset. Subsequently i found the char attributes and stamina and etc...
My questions are how exactly should i comprehend the base pointer and the offset? and when does the offset come into play?
I thought it is in this kind of relationship:
1.CE resolve the value of base pointer to obtain an address ADDR1 on memory
2.CE then go to ADDR1 in memory, move forward by OFFSET and resolve the value at that location, and hence obtaining the actual value
3.If ADDR1 is the real base pointer, restarting conquer will not affect the outcome of resolution of this pointer.
4.If ADDR1 is the real base pointer, then theoratically other character attributes can be obtained by tweaking OFFSET
is that correct?
EDIT
Nvm, i think i am correct. I made a mistake when trying to verify this earlier. I just retried it, and it is correct.
1. resolve value V1 of base pointer
2. obtain location V2 = V1 + OFFSET
3. resolve the value at location V2
bang correct value.