- Cheat Engine 6.1 or 6.2 (i still use 6.1) --> Link Down:Cheat Engine
- At least some form of brains
Use of pointers:
You won't have to search an adress every time you start Cabal Online again.
BEFORE YOU ASK QUESTIONS, READ THIS GUIDE ENTIRELY!
First of all: What is a pointer?
When you look at your adress, and you notice that this isn't static (not green, for example: 1875A6E2 , and not 00E56A8F) this means it is dynamic (keeps changing) and you have a pointer for this adress. The pointer for this adress is another adress that points to the first adress. You will be looking for a pointer that is static (doesn't change)
Lvl 1 pointer:
You search for the adress that points to your adress, and find the base adress (which is a static adress, and would be green if you add this to your adress list) with its offset right away.
Multi-level pointers are a bit harder:
When you search for the pointer there, you will find another dynamic adress, which has a pointer on it's own. This can go on for quite a while (max I ever found on fixedmain.exe was a lvl 11 pointer: so 11 pointers before i found the base adress).
How to find a lvl 1 pointer?
1. First find the address of the value and put the adress in your adress list.
2. Then right-click it and choose 'Find out what accesses this adress'. (and choose yes after that) A debugger will now open. When this is opened you need to change the value of the adress. Then you can see in asm-code what it does. Most of the time this is something like: mov [est],eax.
3. Then double click it and you see that there is a line of text which tells you what the value of the pointer will probably be.
4. Go back to the main CE window and click the check box Hex in front of the place where you insert a value. Then do a new scan for the value that the extra window tells you the pointer will probably be, and you will find one adress (or more, then it's usually the smallest one).
5. Now click on Add adress manually, click the pointer checkbox, fill in the adress you just found, and you're done.
!!! If the expression between [ and ] is for example: [esi + 18] then you need to set the offset at 18 when you add the pointer !!!
How to find multi-level pointers?
1. Same method actually, except you choose 'Find out what writes to this adress'. Then you do the same as for a level 1 pointer. You add this pointer to the list and go to step 2.
2. The pointer you have added in your list then acceses another adress (it doesn't overwrite, as the first one did). So you right-click this and then choose 'Find out what accesses this adress'. And then you do the same steps as for level 1 pointers again.
3. Continue doing this last step untill you find a static base adress (green).
Here's a video that shows how to find multi level pointers:
This tutorial is belong to strontklit, please thank him !!!