PDA

View Full Version : memory locations



b00g3rz69
01-07-2004, 08:21 AM
I'm trying to find some memory locations for Shadowbane. I realize this isn't the SB forum but that forum doesn't get much action, and I think this more about the process than the actual game.

So I have found the range of memory where the data I want is located but it seems to be inconsistent and non-static within that range. I've been told my next step is to determine whether the data is stored as a linked list or an array.

I'm somewhat new to this and am not sure how to go about determining this. Any help would be appreciated.

Thanks.

If you want to reply to the original thread it is listed below.

http://seq.sourceforge.net/forums/showthread.php?threadid=4551

MQSEQ2
01-07-2004, 08:43 AM
I don't think you will get specific SB help from here since this is for EQ.

You will need to start and restart SB several time to see if the data you are looking at changes memory locations (also start other programs like MS Word and Excel during one of the SB runs, this should use memory that wasn't used in the previous test). If the memory locations move then you are dealing with Dynamic Memory vs Static Memory. Once you determine it's Dynamic (if it is) then you will need to start looking for the begining of the Data Structure you are dealing with and once you have that location you can do a search for the address, but remember you need to reverse the address for example the address of the beging location is 006BD5FA you would search for FAD56B00. You reverse the location because that's the way it's stored in memory FILO (First In Last Out).

It is very hard to reverse engineer stuff with out any actual documentation of the structures you are looking for but it can be done if you spend the time. The key is to look for patterns in the memory then write everything down so you can trace your steps.

Good Luck

b00g3rz69
01-07-2004, 11:20 AM
Thanks for the reply.

I actually did these things last night before I read your post. The memory is dynamic and I actually discovered by accident that the address is reversed, I was wondering why that was happening. Thanks for the explanation.

I'm still confused how I can programatically find the data I want when the memory is dynamic? Last night when I was testing this, it was changing all the time.

Thanks.

MQSEQ2
01-07-2004, 01:45 PM
Read: http://seq.sourceforge.net/forums/showthread.php?s=&threadid=4480

You need to locate the first item in the structure then get the Address and find the Calling Address which is static then you always go to that Static Address to get the Dynamic Address.

b00g3rz69
01-07-2004, 03:29 PM
This is very helpful. It was the missing piece I needed to get started.

Thank you very much.