Learning iterate over objectManager menu

User Tag List

Results 1 to 4 of 4
  1. #1
    vaxter's Avatar Private
    Reputation
    1
    Join Date
    Sep 2012
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Learning iterate over objectManager

    Hi all

    I am new here, thanks in advance to all help that you can give me, and thnks for all this amount of information in this forum.

    I am doing some test with memory read, after read successfully some static address like playerName, realms, etc. Now i am starting with my gameObject manager. (all in c#)

    So, i should be doing some wrong, i think that the fail is in my form of get the next object. But i dont know.

    Can someone review my code and give me some of light?

    5.0.4.16016
    Code:
                uint objMgr = wow.ReadUInt((uint)wowBase+ (uint)0x00BE1D2C);
                uint firstObject = wow.ReadUInt((uint)objMgr + (uint)0xC);
                uint nextObject = firstObject;
    
                while(nextObject != 0)
                {
                    int type = wow.ReadInt(nextObject + 0x10);
                    int GUID = wow.ReadInt(nextObject + 0x30);
                    logText.Text += "Object: [" + GUID + "]" + type + "\r\n";
    
                    nextObject = wow.ReadUInt(nextObject + 0x4);
                }
    Tnks in advance.
    Regards

    Learning iterate over objectManager
  2. #2
    TOM_RUS's Avatar Legendary
    Reputation
    914
    Join Date
    May 2008
    Posts
    699
    Thanks G/R
    0/52
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by FinnX View Post
    How do you come to the objMgr offset 0x00BE1D2C? Its totally false.
    You are false. There's just a problem with line:
    Code:
    nextObject = wow.ReadUInt(nextObject + 0x4);
    in first post.

    Originally Posted by FinnX View Post
    And btw, you read the GUID wrong its more likely:
    [[CurObj + Descriptor] + 0x0]
    Guid is both in descriptors and [obj+0x30].

    Code:
                const int s_curMgr = 0x00BE1D2C;
                const int FirstObjectOfs = 0xC; // or 0xCC
                const int NextObjectOfs = 0x4; // or 0xC4
    
                IntPtr objMgr = Memory.Read<IntPtr>(Memory.BaseAddress + s_curMgr);
                IntPtr curObj = Memory.Read<IntPtr>(objMgr + FirstObjectOfs);
    
                while (curObj != IntPtr.Zero && (curObj.ToInt64() & 1) == 0)
                {
                    int type = Memory.Read<int>(curObj + 0x10);
                    ulong GUID = Memory.Read<ulong>(curObj + 0x30);
    
                    logText.Text += "Object: [" + GUID.ToString("X16") + "]" + type + "\r\n";
    
                    curObj = Memory.Read<IntPtr>(curObj + Memory.Read<int>(objMgr + NextObjectOfs) + 0x4);
                }
    If you use FirstObjectOfs = 0xC and NextObjectOfs = 0x4, Memory.Read<int>(objMgr + NextObjectOfs) will return 0x24, that's why you can do it like this as well:
    Code:
    curObj = Memory.Read<IntPtr>(curObj + 0x28);
    and if you use FirstObjectOfs = 0xCC and NextObjectOfs = 0xC4, Memory.Read<int>(objMgr + NextObjectOfs) will return 0x38, that's why you can do it like this as well:
    Code:
    curObj = Memory.Read<IntPtr>(curObj + 0x3C);
    Blizzard's code for those wondering:
    Code:
    bool __cdecl ClntObjMgrEnumVisibleObjects(int (__cdecl *callback)(QWORD, _DWORD), void *pData)
    {
      int current; // eax@1
      int next; // esi@6
    
      current = *(_DWORD *)(s_curMgr + 0xCC); // 0xCC - FirstObjectOfs
      if ( current & 1 || !current )
        current = 0;
      while ( !(current & 1) && current )
      {
        next = *(_DWORD *)(*(_DWORD *)(s_curMgr + 0xC4) + current + 4); // 0xC4 - NextObjectOfs; *(_DWORD *)(s_curMgr + 0xC4) = 0x38 in this case
        if ( !callback(*(QWORD *)(current + 0x30), pData) ) // 0x30 - ObjectGuidOfs
          return 0;
        current = next;
      }
      return 1;
    }
    Last edited by TOM_RUS; 09-05-2012 at 10:03 AM.

  3. #3
    ShoniShilent's Avatar Member
    Reputation
    7
    Join Date
    May 2008
    Posts
    105
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    TOM_RU can someone give me the new offset for 5.0.5 LIVE ?

    objMgr offset 0x00BE1D2C <-----

    i haven't updated my bot since 4.x.x and my notes don't match up anymore for the object base.

    much appreciated..

    Shoni-

  4. #4
    =manzarek='s Avatar Member
    Reputation
    3
    Join Date
    Feb 2010
    Posts
    39
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    All you have to do is open the ida database file on the dump thread and search for the ClntObjMgrEnumVisibleObjects function.
    Learning iterate over objectManager-432ae9fc84b99a8ea6bf5b03afc77a84-png

    See:
    CurrentMgr = dword_FE202C - 400000 = 0xBE202C,
    Fisrt obect = 0xCC.

Similar Threads

  1. Over UC Video
    By Matt in forum World of Warcraft Exploration
    Replies: 3
    Last Post: 01-05-2007, 08:22 AM
  2. Kharazan floating over Goldshire 1.11 Tested
    By gotosleep in forum World of Warcraft Exploits
    Replies: 13
    Last Post: 07-21-2006, 08:06 PM
  3. First MMOwned contest over
    By KuRIoS in forum OC News
    Replies: 7
    Last Post: 07-05-2006, 08:37 PM
  4. i have over 30 WoW mini guides
    By Elites360 in forum World of Warcraft General
    Replies: 7
    Last Post: 06-23-2006, 04:39 PM
  5. Replies: 0
    Last Post: 03-24-2006, 01:43 AM
All times are GMT -5. The time now is 09:21 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search