Post Reply Home » Forums » MMO Forums » Final Fantasy XI » FFXI General Discussions

reading game data : FFXI General Discussions

Posted: February 1st, 2007
draegoon
Ive been tyring to learn this stuff but it's not sinking. I know how to scan for memory and stuff. Trying to write an c++ app to make use of those memory address to simply display stuff but cant seem to be able. does anyone know where I can read up on this? many thanks
Posted: February 1st, 2007
User avatar
Total Posts:1974 Joined:2006
how much do you know so far? do you know what an offset is, or what a base address is? if you give me some more info on where you are i could help you more specifically.

Register to unlock hidden link

also, what IDE are you using? it's possible it could cause some problems if your trying to use the code samples in the above link due to conflicts with the tlhelp32 header file.

_________________
EX-TU member. For my own reasons, I will no longer play a role as an active member. Goodbye.


RIP kourath. 5/21/08
Posted: February 1st, 2007
draegoon
thanks for the help.

Here is what I know so far:

How to scan for address, and find pointers and deep pointers, but alot of time it doesnt seem to be right? I know the pointer works cuz i add it to CE and see data and everything. But when i reboot or use that address on diff comp, it doesnt show the info.

I can write a c++ console/mfc app to read these address.

I think what i am missing is finding base address of the game, then use data address - base address of game= data address offset. then i can use that on other machine to do base address of game + data address offset = data. But i cant seem to find a way to get the base address of the game that is loaded in memory. Is this what i am missing?

I would also love to learn how to automatically calculate mem loc each time game patch that all these ffxi seem to have.

What i am trying to do is write a program that can read these data, then maybe able to make a bot to do low level farming/tedious task that require knowing hp/mp and general data in the game to make good decision.

ive been banging at this for months and cant see to get anywhere. Any help is much appreciated.

How does TUBucks work? am i able to buy it and give you guys a bunch of TUBucks for helping me?

thanks in advance for all the help.
Posted: February 2nd, 2007
User avatar
administrator
Total Posts:29891 Joined:2002
Tu bucks youll have to wait for in the future :). Phase 1 of their potential will be released soon :)
Posted: February 2nd, 2007
User avatar
Total Posts:1974 Joined:2006
then use data address - base address of game= data address offset. then i can use that on other machine to do base address of game + data address offset = data
exactly right.

Base address + Offset = Location of the value you want to read.

base address = where the applications memory block begins (in this case the application would be ffximain.dll)

offset = static value (except in the case of an update) tells the distance between the base address and the value your trying to read

that is the beauty of offsets, they're always in the same position relative to the base address, therefore you can find that relative position (the offset value) and just add the base address to find where to read the value that your looking for. Now, in the case off FFXI, your going to have to find the base address of ffximain.dll because that is where all the values that your looking for are going to be. im not sure how to do it in c++ other than the way the code example in the link i gave in the first post does, so you just may have to experiment.

I kind of know my way around this stuff, but I'm still learning too. Perhaps someone else could explain it better in the event that I missed something.

although, I'm more than happy to try to help. just ask if you have any questions.
Posted: February 6th, 2007
Total Posts:229 Joined:2006
Also, what information are you trying to read? Some of it is stored in interesting manners. In the matter of pointers you will also need to find the offset to the pointer and then read the pointer to get the address of the item you are looking for. When I search for offsets, I always do a search for a pointer first and tend to look for a range (ie if I am looking for the pointer to 01EA456
I will look for a pointer to a range being 01EA06E (1000 less) to 01EA456). This will show me any pointers to that range and I can determine which is the correct one. Sometimes it is a pointer + a value to get my location. keep in mind that I just made up those values, they have no relevance.

Like kourath said, Memlocs can either be a Direct offset from the ffximain.dll base address or a pointer as I described above.

If you give me an idea of what information you are trying to retrieve, I can probably be of more help.
Ready to join the community? Click here and see all of the benefits!
blue large dotWho is online
Users browsing this forum: No registered users and 26 guests
Post Reply