Object Manager traversal (WoW classic) menu

User Tag List

Page 3 of 3 FirstFirst 123
Results 31 to 35 of 35
  1. #31
    Razzue's Avatar Contributor Avid Ailurophile

    CoreCoins Purchaser Authenticator enabled
    Reputation
    378
    Join Date
    Jun 2017
    Posts
    588
    Thanks G/R
    184/267
    Trade Feedback
    2 (100%)
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ejt View Post
    CGObject_C + 0x10 is a pointer to the object's descriptors (as listed here ([Classic TBC] 2.5.1.38988 object descriptors))

    CGUnit_C + 0x198 is a pointer to CMovement structure, CGUnit_C + 0x1598 is the start of CMovement structure

    Code:
    // size = 0x238
    struct CMovement : CPassenger
    {
    	//CPassenger passenger;	// 0x000
    	uintptr_t unk_048;		// 0x048
    	uintptr_t unk_050;		// 0x050
    	MovementFlags Flags;	// 0x058
    	uint32_t unk_05C;		// 0x058
    	float x;				// 0x060
    	float y;				// 0x064
    	float z;				// 0x068
    	float facing;			// 0x06C
    	// etc...
    };
    just to clarify some offsets posted earlier
    Oh.. so I WAS doing it the right way.. good to know

    Object Manager traversal (WoW classic)
  2. #32
    ChrisIsMe's Avatar Contributor
    Reputation
    164
    Join Date
    Apr 2017
    Posts
    210
    Thanks G/R
    67/100
    Trade Feedback
    0 (0%)
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Razzue View Post
    Oh.. so I WAS doing it the right way.. good to know
    The game uses base + 0x198, in most places I have seen, so I would say no.

    There's always more than one way to do anything though, you can also rip this all out of the Object Manager base.

  3. #33
    Reghero's Avatar Member
    Reputation
    11
    Join Date
    Jun 2017
    Posts
    35
    Thanks G/R
    29/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Happy to open another thread if it makes sense but quick question about function calls after injected:

    Code:
    public static class Functions
        {
            [DllImport("FastCall.dll", EntryPoint = "EnumerateVisibleObjects")]
            static extern void EnumerateVisibleObjects(IntPtr callback, long filter, IntPtr ptr);
    
            internal static void EnumerateVisibleObjects(IntPtr callback, long filter) =>
                EnumerateVisibleObjects(
                    callback,
                    filter,
                    System.Diagnostics.Process.GetCurrentProcess().MainModule.BaseAddress + 0x12DEBF0
                );
        }
    Code:
    public class ProcessController : ApiController
        {
            [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
            delegate int EnumerateVisibleObjectsCallback(IntPtr guid, int filter);
    
            static EnumerateVisibleObjectsCallback callback;
    
            private IntPtr callbackPtr;
    
            public ProcessController()
            {
                callback = Callback;
                callbackPtr = Marshal.GetFunctionPointerForDelegate(callback);
            }
    
            static int Callback(IntPtr guid, int filter)
            {
                MessageBox.Show("Got call");
    
                return 1;
            }
           
            void CallEnumObjects() {
            ThreadSynchronizer.RunOnMainThread(() =>
                    {
                        Functions.EnumerateVisibleObjects(callbackPtr, 0);
                    });
             }
    }
    Address from this function which looks to match previous discussions on this:

    enumobjects.PNG
    Last edited by Reghero; 07-04-2021 at 02:24 PM.

  4. #34
    Weekday's Avatar Contributor

    Reputation
    144
    Join Date
    Sep 2007
    Posts
    350
    Thanks G/R
    1/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You have the wrong offset, it is 0x12DECA0.

  5. #35
    Reghero's Avatar Member
    Reputation
    11
    Join Date
    Jun 2017
    Posts
    35
    Thanks G/R
    29/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Weekday View Post
    You have the wrong offset, it is 0x12DECA0.
    Thanks. I found it not long after posting while browsing in IDA.

    I tried updating it:

    Code:
    public static class Functions
        {
            [DllImport("FastCall.dll", EntryPoint = "EnumerateVisibleObjects")]
            static extern void EnumerateVisibleObjects(IntPtr callback, long filter, IntPtr ptr);
    
            internal static void EnumerateVisibleObjects(IntPtr callback, long filter) =>
                EnumerateVisibleObjects(
                    callback,
                    filter,
                    System.Diagnostics.Process.GetCurrentProcess().MainModule.BaseAddress + 0x12DECA0
                );
        }
    C++

    Code:
    void __declspec(dllexport) __stdcall EnumerateVisibleObjects(unsigned int callback, int filter, unsigned int ptr)
        {
            typedef unsigned int __fastcall func(unsigned int callback, int filter);
            func* function = (func*)ptr;
            function(callback, filter);
        }
    C# callback
    Code:
    [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
            delegate int EnumerateVisibleObjectsCallback(IntPtr guid, long filter);
    
            static EnumerateVisibleObjectsCallback callback;

Page 3 of 3 FirstFirst 123

Similar Threads

  1. [Source] WPF Wow Object manager
    By !@^^@! in forum WoW Memory Editing
    Replies: 11
    Last Post: 01-26-2010, 04:13 PM
  2. [WoW][3.2.0] Better Object Managment
    By Apoc in forum WoW Memory Editing
    Replies: 43
    Last Post: 01-01-2010, 07:23 AM
  3. WoW(classic) OST in BC
    By faisal_o in forum World of Warcraft General
    Replies: 5
    Last Post: 10-13-2007, 10:36 AM
  4. WoW Object Manager ?
    By discorly in forum WoW ME Questions and Requests
    Replies: 4
    Last Post: 07-28-2007, 06:34 PM
All times are GMT -5. The time now is 12:28 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search