Problem accessing game process memory consistently...

Posts 13 of 3 · Page 1 of 1
Problem accessing game process memory consistently...
Ok, long story short - I'm just trying to write a small C# program that accesses my Neverwinter MMORPG game memory to display detailed statistics of what's happening in the world around me. It's a just-for-fun type project.

1. I ran Neverwinter.
2. Loaded up CheatEngine and attached to the process.
3. Looked at my XP bar, search for that number in CE. Came up with a bunch of different results.
4. I gained some XP, re-searched and narrowed it down to 2 addresses.
a. 0x0237D808 (a green number, static according to CE).
b. 0x241A41A4 (possibly a pointer)

5. I did the same scan for character name and came up with the two following addresses:
a. 0x023773C4
b. 0x0245D408

neither of which showed green (static).

So I quickly threw together some code to display my character name and current XP in a small window.
Worked GREAT! Until I reloaded the game. I double checked with CE just by re-attaching to the process
and the *values* it was displaying were still correct, but the address had changed slightly.

Now the XP was at 0x02B6D808 and the name was at 0x02B673C4. Note, only the first 4 of the address
changed, the last 4 are still the same. CheatEngine was able to track this change somehow, and for
some reason my software didn't.

What am I missing here? I do I figure out a way to consistently access the same memory area?
Figure out if xp is located in a struct, and pointer-scan for the start of the structure. (then refer to each data as structStart + offset)

Add me on skype (same username as here) and i'll try to explain more. I do mostly vb, so not much code sorry, but concept is the same.
Quote Originally Posted by abuckau907 View Post
Figure out if xp is located in a struct, and pointer-scan for the start of the structure. (then refer to each data as structStart + offset)

Add me on skype (same username as here) and i'll try to explain more. I do mostly vb, so not much code sorry, but concept is the same.
I don't have a Skype account, I suppose I should get around to setting one up one of these days. But in the meantime, my
XP pointer (the static one) is currently GameClient.exe+0223D808 (again, 1st 4 different, last 4 the same).

I browsed to that memory area, did a structure scan an noticed that at 0 offset was my current XP, and at 4 offset was my max XP for this level.
And at 18 offset there is a pointer, everything else in this area is 0's.

If I follow the pointers down at offset 18, I eventually find something that looks like my x/y/z location, which looks promising I suppose, I'm just curious as to why the first 4 bytes keep changing and how to narrow that down. Perhaps I'm looking at the wrong location? I thought static locations were static...
Posts 13 of 3 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?