[QUESTION] HP Memory Address

04/25/2009 22:52 Belth#1
Is it possible to get the memory address of HP? I read around and saw that it is DMA but more reading around the AutoIt forums said there's a way around that by getting the memory address of the pointer to HP. I tried cheatengine but not really sure what to look for. I'm now starting to get the hang of programming in general so maybe my terms aren't correct.

Anyone understand what I'm looking for?

P.S. I'm trying to find out to make a memory-based auto-potter.
04/25/2009 23:33 high6#2
04/26/2009 03:59 clintonselke#3
Quote:
Originally Posted by high6 View Post
Its not encrypted, its just miss-a-lined (i can't spell for crap xD). And its also dynamically allocated so it will keep changing each time. (U may need an input box for the address).

How to find it??... Answer: binary search in CheatEngine (remember to use the pause game when search checkbox, bcuz ur HP will slowly rise and effect ur results).

After you have found it, then you will have an address and an offset... Looks like this:

[23423ABD]^4 (example only)

something like that will mean its located at 23423ABD and ignore the lowests 4 bits

Example of using example in AutoIt:

$HP = BitShift(_ReadMemory(0x23423ABD, $MemId), 4)

The fact that u have to search it each time u run conquer is a bit of a pain. But i think someone else in elitepvpers knows how to fix the address (make it static), something to do with searching for a pointer to some memory which when u move down a bit will give u another pointer to the HP, but i don't know how to get CheatEngine to search for that. (for getting it to find the address of the pointer that holds the dynamically allocated memory which with a certain offset contains the players current HP)
04/26/2009 06:13 high6#4
I believe it is a little more than "mis-aligned".

[Only registered and activated users can see links. Click Here To Register...]

Unless they changed it since then.
04/26/2009 06:56 clintonselke#5
Quote:
Originally Posted by high6 View Post
I believe it is a little more than "mis-aligned".

[Only registered and activated users can see links. Click Here To Register...]

Unless they changed it since then.
wow, i had no idea. But it works for me, i wrote a bot for my ninja and it had autopot function using memory read.
Do ya think TQ have a second variable also holding the HP-value and they forgot to cover it up?? (possibly the spot in memory their client stores it when it decrypts)
Because the simple search no encryption is working for me.
04/26/2009 06:59 high6#6
I believe that, that address will stop working eventually.
04/26/2009 11:01 InfamousNoone#7
I object to that being the only way to obtain hp, without codecaves, well I can think of a few, but keeping it in line of simple, I'd say encrypting HP with the method(s) you've shown (well obviously we're decrypting it, but whatever) it seems too overly complicated and unnecessary, even for TQ.
04/26/2009 19:23 high6#8
Quote:
Originally Posted by InfamousNoone View Post
I object to that being the only way to obtain hp, without codecaves, well I can think of a few, but keeping it in line of simple, I'd say encrypting HP with the method(s) you've shown (well obviously we're decrypting it, but whatever) it seems too overly complicated and unnecessary, even for TQ.
It is what they use everywhere to get the health.

0x004DA518; GetCurrentHealth()
0x004C81F9; GetMaxHealth()

It does look like they have changed a bit since I last ripped them.
04/27/2009 07:52 Belth#9
Well damn. I've accepted that I won't find a static address for HP (either not possible or too many pointers to pointers I can't figure out) so I would just have to input the HP address every time... not too much of a problem.

But now, I try to find the address for the number of vanillas I have and seem to be running into the same problem. Is this address as hard to pinpoint? Or am I searching for pointers wrong?

Using cheatengine btw.
04/27/2009 08:58 high6#10
The client doesn't store how many of an item you have.

You will have to locate the inventory and manually count each vanilla in each slot.
04/27/2009 15:14 Belth#11
My bad, I explained incorrectly. I was actually trying to find the number of a particular item on a particular F-Key (e.g. How many pots are left on F8). Everything else I asked applies.
05/07/2009 10:30 rceclmn#12
ohh i forgot,, if u get hit by a monster if u sit or just stand, after some seconds your hp will regenerate a lil bit xD
05/07/2009 17:50 high6#13
Quote:
Originally Posted by Belth View Post
My bad, I explained incorrectly. I was actually trying to find the number of a particular item on a particular F-Key (e.g. How many pots are left on F8). Everything else I asked applies.
That is just a simple search and then finding the static referencer.


Anyways it seems they changed the CurrentHealth to an FDword.

Code:
class CCharacterInfo //0x005DABB8
{
    CFDword * CurrentHealth; //0xCD0
};
So just a simple, CharacterInfo->CurrentHealth->GetValue(1);

Btw [Only registered and activated users can see links. Click Here To Register...] is FDword's source, may convert it later... But meh...
05/07/2009 19:36 swords#14
You can find the HP pot amount from your F keys... Each F key has it's own address... I have some of the addresses, but they are at my home computer, and atm I'm at school :P.
05/12/2009 17:20 lazlo#15
Quote:
Originally Posted by Belth View Post
But now, I try to find the address for the number of vanillas I have and seem to be running into the same problem. Is this address as hard to pinpoint? Or am I searching for pointers wrong?

Using cheatengine btw.
Get vanillas and get some other pot. Use 2 different number of pots. EG 2 vanillas and 12 genseng. Put one of F1 and the other on a different F key. Search for the total on F1, then switch them, search again. Keep this process up until the numbers wont go any lower. then use a pot. and repeat. eventuall you will find it.