MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides

Homepage Register FAQ Members Mark Forums Read Advertise Marketplace FPSowned


Go Back   MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides > World of Warcraft > Bots and Programs > WoW Memory Editing
Reload this Page Can you read player names out of process?
WoW Memory Editing WoW Memory Editing for learning purposes only.

Reply
 
LinkBack Thread Tools
Can you read player names out of process?
(#1)
Old
sweeper18 is Offline
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 3
Reputation: 2
sweeper18 is an unknown quantity at this point
 
Posts: 26
Join Date: Aug 2006
Can you read player names out of process? - 07-01-2008

I have my program looping through and finding all of the objects in the ObjMgr from out of process, Thanks Knyox . I am taking small steps and I have all of the NPC names/pos/level all of that good stuff updating every 200ms. I can't seem to find a way to read the player names from an offset of the player structure. I dumped the memory around the addresses I found using a memory scanner and didn't see much.


I was curious if anyone had done this quite yet... if not, I have a lot of really annoying work ahead of me
Reply With Quote

Donate to remove ads.
(#2)
Old
mrbrdo is Offline
Corporal
Rep Power: 1
Reputation: 5
mrbrdo is an unknown quantity at this point
 
Posts: 30
Join Date: Jun 2008
07-04-2008

Code:
function TWoWNPC.Name: String;
var m: Cardinal;
begin
  m := PWoWMemoryReader(mem).GetDWORD(ptrPlayerBase + 0xDB8);
  m := PWoWMemoryReader(mem).GetDWORD(m + 0x40);
  Result := PWoWMemoryReader(mem).GetString(m, 30); // 30 = length
end;
was told many times, not my idea (sry forgot who originally posted it, i know kynox mentioned it a few times).
Reply With Quote
(#3)
Old
Shynd's Avatar
Shynd is Offline
Master Sergeant
Rep Power: 1
Reputation: 28
Shynd is on a distinguished road
 
Posts: 121
Join Date: May 2008
07-04-2008

He's asking about Player names, not Unit names.
Reply With Quote
(#4)
Old
Bobnovak is Offline
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 2
Bobnovak is an unknown quantity at this point
 
Posts: 7
Join Date: Jun 2008
07-04-2008

I haven't seen anything about player names around, I imagine it's in there somewhere though.
Reply With Quote
(#5)
Old
Cypher's Avatar
Cypher is Offline
Kynox's Pimp OMGRECURSION
Legendary User
Rep Power: 9
Reputation: 793
Cypher is a splendid one to beholdCypher is a splendid one to beholdCypher is a splendid one to beholdCypher is a splendid one to beholdCypher is a splendid one to beholdCypher is a splendid one to beholdCypher is a splendid one to behold
 
Posts: 2,009
Join Date: Apr 2006
Location: Your mums bedroom
07-05-2008

CGObject_C::GetObjectName:
.text:005D8470 CGObject_C__GetObjectName proc near ; CODE XREF: sub_59D930+108p
.text:005D8470 ; sub_59D930+182p
.text:005D8470 ; sub_5A07D0+1Ep ...

Not sure if that's what you're looking for but thats what I have on hand.



If freedom is outlawed, only outlaws will have freedom.
I'm not being rude, you're just insignificant.
Reply With Quote
(#6)
Old
kynox's Avatar
kynox is Offline
Cypher's Pimp

Rep Power: 5
Reputation: 529
kynox is a glorious beacon of lightkynox is a glorious beacon of lightkynox is a glorious beacon of lightkynox is a glorious beacon of lightkynox is a glorious beacon of lightkynox is a glorious beacon of light
 
Posts: 318
Join Date: Dec 2006
Location: Raping your Stack
07-05-2008

Code:
char *__thiscall sub_5D8470(int this, int a2)
{
  DWORD v2; // eax@1
  int v3; // esi@1
  char *result; // eax@2
  DWORD v5; // ecx@6
  int v6; // esi@14
  int v7; // eax@9
  int v8; // ecx@9
  int v9; // [sp+4h] [bp-8h]@2
  int v10; // [sp+8h] [bp-4h]@2

  v3 = this;
  v2 = *(_DWORD *)(this + 8);
  if ( (*(_DWORD *)(v2 + 8) >> 4) & 1 )                         // if ( (OBJECT_FIELD_TYPE >> 4) & 1) aka IsPlayer
  {
    v9 = *(_DWORD *)v2;
    v10 = *(_DWORD *)(v2 + 4);
    result = (char *)sub_67D400(*(_DWORD *)v2, *(_DWORD *)(v2 + 4), &v9, sub_5D6FB0, 0, 1);
    if ( result )
    {
      if ( a2 )
      {
        if ( *(result + 52) )
          *(_DWORD *)a2 = result + 52;
      }
      return result;
    }
  }
  else
  {
    v5 = *(_DWORD *)(this + 288);
    if ( *(_DWORD *)(v5 + 0x268) )                              // if ( UNIT_FIELD_PET_NUMBER ) aka IsPet
    {
      v9 = *(_DWORD *)v2;
      v10 = *(_DWORD *)(v2 + 4);
      result = (char *)sub_67E8C0(*(_DWORD *)(v5 + 616), &v9, sub_5D6FB0, 0, 1);
      if ( result )
      {
        if ( *((_DWORD *)result + 22) == *(_DWORD *)(*(_DWORD *)(v3 + 288) + 620) )
          return result;
        sub_5F24B0(result);
        sub_67A550(*(_DWORD *)(*(_DWORD *)(v3 + 288) + 616));
        v7 = *(_DWORD *)(v3 + 8);
        v9 = *(_DWORD *)v7;
        v8 = *(_DWORD *)(v3 + 288);
        v10 = *(_DWORD *)(v7 + 4);
        sub_67E8C0(*(_DWORD *)(v8 + 616), &v9, sub_5D6FB0, 0, 1);
      }
    }
    else
    {                                                           // else, Its a Unit
      v6 = *(_DWORD *)(v3 + 0xDB8);
      if ( v6 )
        return *(char **)(v6 + 0x40);
    }
  }
  result = (char *)sub_4C15D0("UNKNOWNOBJECT", -1, 0);
  if ( !result || !*result )
    result = "Unknown Being";
  return result;
^ Basically, its reading the name from cache (sub_67D400) Rather than a variable of the class.

It's going to be quite difficult to read it out from what i can see. Though, you can always try i guess.

Inprocess FTW!


Do not PM me about the ME fix or other ME questions
Reply With Quote
(#7)
Old
sweeper18 is Offline
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 3
Reputation: 2
sweeper18 is an unknown quantity at this point
 
Posts: 26
Join Date: Aug 2006
07-06-2008

This is gonna suck lol
Reply With Quote
(#8)
Old
kynox's Avatar
kynox is Offline
Cypher's Pimp

Rep Power: 5
Reputation: 529
kynox is a glorious beacon of lightkynox is a glorious beacon of lightkynox is a glorious beacon of lightkynox is a glorious beacon of lightkynox is a glorious beacon of lightkynox is a glorious beacon of light
 
Posts: 318
Join Date: Dec 2006
Location: Raping your Stack
07-06-2008

You could always inject a code cave to call the cache function


Do not PM me about the ME fix or other ME questions
Reply With Quote
(#9)
Old
Shynd's Avatar
Shynd is Offline
Master Sergeant
Rep Power: 1
Reputation: 28
Shynd is on a distinguished road
 
Posts: 121
Join Date: May 2008
07-06-2008

[Only registered and activated users can see links. ]
Pretty simple, actually. Names are stored in a linked list. WoW basically iterates through the list until it finds the entry whose GUID matches that of the object whose name it's trying to get. Simply do the same thing for the win.

As seen in the wild:
[Only registered and activated users can see links. ]

Last edited by Shynd; 07-06-2008 at 12:23 PM. Reason: Linked to code with commenting, easier to understand
Reply With Quote
(#10)
Old
sweeper18 is Offline
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 3
Reputation: 2
sweeper18 is an unknown quantity at this point
 
Posts: 26
Join Date: Aug 2006
07-06-2008

Quote:
Originally Posted by Shynd View Post
[Only registered and activated users can see links. ]
Pretty simple, actually. Names are stored in a linked list. WoW basically iterates through the list until it finds the entry whose GUID matches that of the object whose name it's trying to get. Simply do the same thing for the win.
Yay, ty vm, will +rep if I can
Reply With Quote
(#11)
Old
suicidity's Avatar
suicidity is Offline
Contributor
Rep Power: 2
Reputation: 89
suicidity will become famous soon enough
 
Posts: 652
Join Date: Oct 2006
Location: In your attic.
07-06-2008

Very nice post Shynd.

I knew it could be done because that old KMap or whatever that was backed by Merc did it.

Nice work!




Reply With Quote
Reply

Donate to remove ads.

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are On



Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vBulletin Skin developed by: vBStyles.com


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344