Page 1 of 1

tracking root pointer

PostPosted: Mon Sep 24, 2007 4:02 pm
by robrave
After many weeks, using MHS, I was still unable to locate the root pointer for the datas I need.

But using the MHS tools, I was able to find the code, inject some code, so that the values will be written to a static location.

My main objective is to log the information of the monster I currently selected, this includes:
name O
level O
element/property O
tamable? X
coordinates X
max hp O

O means I successfully be able to locate those data using disassembly and code injection.. but still having real trouble with the coordinates which uses float since it is 3D.

Now you have mention in the help file that

Auto-Hack shows you every read, write, or access to an address, and extremely advanced features will be coming soon (automatic back-tracking down to the root pointer).


can you at least give me a clue on how to do this? since what I understand with backtracking the pointer is that.. I use pointer search, then out the result I do subsearch on each one that I think it is.

I really believe static pointer is just out there in the games RAM.

Hope you could enlighten me.
Thanks!!

PostPosted: Mon Sep 24, 2007 4:28 pm
by L. Spiro
Coordinates are easy to find if you can move up and down.
Otherwise, you just have to assume one direction is North and walk North and South searching for increased and decreased. If you find nothing, Assume North is another direction and repeat.


can you at least give me a clue on how to do this?

It is typically done by studying the ASM code.
No methods are easy, which is why people prefer to use your method of storing the address to a static location.

For now, you should probably just stick to this idea.


L. Spiro

PostPosted: Mon Sep 24, 2007 4:48 pm
by robrave
oh i see..

but Is there a way to track or go back in the code? for example:

0056A1AD | 8990 2C010000 | MOV DWORD PTR [EAX+12C], EDX |

EDX has the value, I then look at the codes backwards and see how EDX got its data, and from there, follow the other source to the other source.. but the problem is when it was called from the another jmp.. it was not easy and I always lose my track :)

PostPosted: Mon Sep 24, 2007 5:08 pm
by L. Spiro
EDX is the value being written to the target address.
You don’t need that; you need the path to the target address, which in your snippet involves EAX.

You need to follow the code backwards to find out how EAX got its value.


L. Spiro