| | WoW Memory Editing WoW Memory Editing for learning purposes only.
This section is more advanced than others on MMOwned Read the section specific rules, infractions will be given out if u break them!That is including the expectations! - If you don't meet them then don't post |  | | 
12-03-2008
| | New User | | | Join Date: Mar 2008
Posts: 4
Reputation: 1 Level up: 99%, 7 Points needed | | | | Getting Hitpoints/Mana Ok are these values stored in offsets or are there actual memory values for them? If so what are the offsets and would i just read them from the object manager? | Donate to remove ads, get your "DONATOR title, and get access to the MMOwned community's elite Shoutbawx. 
12-04-2008
|  | Kynox's sister's pimp Legendary User | | | Join Date: Apr 2006 Location: ntdll.dll
Posts: 4,188
Nominated 63 Times in 4 Posts  TOTM/W Award(s): 1 Reputation: 1085 Points: 55,580, Level: 35 | Level up: 16%, 3,120 Points needed |     | | | Did you even look at the stickies or use search?
Given the answer is pretty much certainly no, you can go diaf till you do that. | 
12-04-2008
| | Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep) | | | Join Date: Mar 2008 Location: 127.0.0.1
Posts: 57
Reputation: 3 Level up: 24%, 380 Points needed | | | | Flame on!!!!! | 
12-04-2008
|  | MaiN's Biatch Legendary User | | | Join Date: Mar 2007 Location: VirtualAllocEx
Posts: 1,115
Nominated 26 Times in 3 Posts  TOTM/W Award(s): 1 Reputation: 727 Points: 36,171, Level: 28 | Level up: 95%, 129 Points needed |     | | | hmm the values stored in ITEM_FIELD_ENCHANTMENT_X_X are short?
but what are the values u get by reading them is it some sort of enchant id? | 
12-04-2008
|  | Contributor | | | Join Date: May 2008
Posts: 387
Reputation: 87 Level up: 2%, 494 Points needed |    | | | how i can read stored memories for hP??? i not wantign read nethng or dowork plz *hodls out hand!*!! | 
12-04-2008
| | New User | | | Join Date: Mar 2008
Posts: 4
Reputation: 1 Level up: 99%, 7 Points needed | | | | I have searched and i have read stickies... i know the offsets for the health but no where could i find where to use these. Ive tried getting the client connection then the current object manager then reading from the objmgr+ the health offset but its not returning the right value. | 
12-04-2008
|  | Contributor | | | Join Date: May 2008
Posts: 387
Reputation: 87 Level up: 2%, 494 Points needed |    | | | Maybe you should learn the basics first, then. | 
12-04-2008
| | New User | | | Join Date: Mar 2008
Posts: 4
Reputation: 1 Level up: 99%, 7 Points needed | | | | I know the basics. | 
12-04-2008
| | Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep) | | | Join Date: Mar 2008 Location: 127.0.0.1
Posts: 57
Reputation: 3 Level up: 24%, 380 Points needed | | | Quote:
Originally Posted by XAaronX I know the basics. | Apparently not. Cause HP & Mana are as basic as it gets. Code:
DWORD curMgr;
_asm MOV EAX, DWORD PTR DS:[g_clientConnection]
_asm MOV EAX, DWORD PTR DS:[EAX+0x2864]
_asm MOV curMgr, EAX
DWORD *FirstObj = (DWORD *)(curMgr + 0xAC);
DWORD *Descriptor = (DWORD *)(FirstObj + 0x08);
int HP = *(int *)(Descriptor + UNIT_FIELD_HEALTH * 4);
That should give you the health value of the FirstObj | 
12-04-2008
|  | Contributor | | | Join Date: May 2008
Posts: 387
Reputation: 87 Level up: 2%, 494 Points needed |    | | | If you think that adding UNIT_FIELD_HEALTH offset to the address for the object manager should get you your player's hp, you do not know the basics. Hi, loop through the ****ing object list until you find your LOCAL PLAYER OBJECT, and then add (UNIT_FIELD_HEALTH * 4) to [LocalPlayer + 0x08] and... HOLY SHIT MY HP. If you can't figure THAT out, then you really don't know the basics. | 
12-07-2008
| | New User | | | Join Date: Mar 2008
Posts: 4
Reputation: 1 Level up: 99%, 7 Points needed | | | Quote:
Originally Posted by cenron Apparently not. Cause HP & Mana are as basic as it gets. Code:
DWORD curMgr;
_asm MOV EAX, DWORD PTR DS:[g_clientConnection]
_asm MOV EAX, DWORD PTR DS:[EAX+0x2864]
_asm MOV curMgr, EAX
DWORD *FirstObj = (DWORD *)(curMgr + 0xAC);
DWORD *Descriptor = (DWORD *)(FirstObj + 0x08);
int HP = *(int *)(Descriptor + UNIT_FIELD_HEALTH * 4);
That should give you the health value of the FirstObj | tyvm. Yes i know, i ment i know the basics of memory reading, and am extreamly talented in C#, just first time getting into WoW Memory reading. | 
12-07-2008
|  | Kynox's sister's pimp Legendary User | | | Join Date: Apr 2006 Location: ntdll.dll
Posts: 4,188
Nominated 63 Times in 4 Posts  TOTM/W Award(s): 1 Reputation: 1085 Points: 55,580, Level: 35 | Level up: 16%, 3,120 Points needed |     | | Quote:
Originally Posted by XAaronX tyvm. Yes i know, i ment i know the basics of memory reading, and am extreamly talented in C#, just first time getting into WoW Memory reading. |
Extremely talented....
I lold. | 
12-10-2008
| | Sergeant | | | Join Date: Jun 2008
Posts: 41
Reputation: 36 Level up: 36%, 320 Points needed | | | Quote:
Originally Posted by XAaronX Ok are these values stored in offsets or are there actual memory values for them? If so what are the offsets and would i just read them from the object manager? | Add these offsets to the base address for your mobile object, then do a 4 byte read and you'll get the values you're looking for.
Current Hit Points = 0x1030
Current Power = 0x1034
For Maximum Hit Points (0x7C), you'll have to read a different struct. It's the one that contains information like level, class, race, gender, target guid, etc. I think Cypher and others call it UNIT_FIELDS, but I could be wrong. I use an entirely different naming convention.
Hope that helps. | 
12-10-2008
|  | Kynox's sister's pimp Legendary User | | | Join Date: Apr 2006 Location: ntdll.dll
Posts: 4,188
Nominated 63 Times in 4 Posts  TOTM/W Award(s): 1 Reputation: 1085 Points: 55,580, Level: 35 | Level up: 16%, 3,120 Points needed |     | | Quote:
Originally Posted by Hyru Add these offsets to the base address for your mobile object, then do a 4 byte read and you'll get the values you're looking for.
Current Hit Points = 0x1030
Current Power = 0x1034
For Maximum Hit Points (0x7C), you'll have to read a different struct. It's the one that contains information like level, class, race, gender, target guid, etc. I think Cypher and others call it UNIT_FIELDS, but I could be wrong. I use an entirely different naming convention.
Hope that helps.  | Its not what we 'call it'. Those are the actual strings stored in the client. You can dump them out in an automated fashion.
Also, the way you're doing it is totally retarded. Just use the "UNIT_FIELDS" (as you have dubbed them). Its about a million times faster than using a memory reader and hardcoded offsets.
eg. Hit Points: UNIT_FIELD_HEALTH.
Power type: UNIT_FIELD_BYTES_0 ((Field>>24)&0xFF)
Power: UNIT_FIELD_POWER2 or UNIT_FIELD_POWER1 depending on the type.
etc.
EDIT:
Pointers to the descriptor arrays are available in the MirrorInitialize function. Address for v3.0.3 is 0x004873F0
Last edited by Cypher; 12-10-2008 at 09:31 PM.
| 
12-11-2008
|  | MaiN's Biatch Legendary User | | | Join Date: Mar 2007 Location: VirtualAllocEx
Posts: 1,115
Nominated 26 Times in 3 Posts  TOTM/W Award(s): 1 Reputation: 727 Points: 36,171, Level: 28 | Level up: 95%, 129 Points needed |     | | | |  | |
Posting Rules
| You may not post new threads You may not post replies You may not post attachments You may not edit your posts HTML code is Off | | | All times are GMT -4. The time now is 11:11 AM. |