Object Names menu

User Tag List

Thread: Object Names

Results 1 to 15 of 15
  1. #1
    johno22's Avatar Private
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Object Names

    Hi Guys

    Wondering if you can help me with a little issue........

    1, I'm grabbing a g_clientConnection from 0x1139F80.
    2, Using theg_clientConnection + 0x2C34 to get the s_curMgr
    3, Getting the curObj using the s_curMgr + 0xAC
    4, Looping through all the following data trying to get an object name, which isn't working........

    Code:
     uint namePtr = (uint)Globals.memoryManager.ReadInt(curObj + 0x1F4);
     namePtr = (uint)Globals.memoryManager.ReadInt(namePtr + 0x078);
     string oName = Globals.memoryManager.ReadString(namePtr);
    
     Console.WriteLine(oName);
    My pointers are probably out of date or something, but I'm really struggling to sort them out.

    My

    Code:
    UInt64 currentGUID = (ulong)Globals.memoryManager.ReadLong(curObj + 0x30);
    looks a bit wrong too, it's not coming out as matching my ingame GUID.

    Full context:

    Code:
    uint g_clientConnection = (uint)Globals.memoryManager.ReadInt(0x1139F80);
                    uint s_curMgr = (uint)Globals.memoryManager.ReadInt((uint)g_clientConnection + 0x2C34);
    uint curObj = (uint)Globals.memoryManager.ReadInt((uint)s_curMgr + 0xAC);
                    uint nextObj = 0;
    
                    while (curObj != 0 && (curObj & 1) == 0)
                    {
                        UInt64 currentGUID = (ulong)Globals.memoryManager.ReadLong(curObj + 0x30);
    
                        int arrayAt8 = Globals.memoryManager.ReadInt(curObj + 0x08);
    
    
                        uint namePtr = (uint)Globals.memoryManager.ReadInt(curObj + 0x1F4);
                        namePtr = (uint)Globals.memoryManager.ReadInt(namePtr + 0x078);
                        string oName = Globals.memoryManager.ReadString(namePtr);
    
                        Console.WriteLine(oName);
                        Console.WriteLine("Xpos: " + Globals.memoryManager.ReadFloat((uint)arrayAt8 + 0x40));
                        Console.WriteLine("Ypos: " + Globals.memoryManager.ReadFloat((uint)arrayAt8 + 0x7D4));
                        Console.WriteLine("Zpos: " + Globals.memoryManager.ReadFloat((uint)arrayAt8 + 0x48));
                        Console.WriteLine("hp: " + Globals.memoryManager.ReadFloat((uint)arrayAt8 + (0x17 * 4)));
    
                       
                        nextObj = (uint)Globals.memoryManager.ReadInt(curObj + 0x3C);
    
                        curObj = nextObj;
                        
                    }
    My biggest concern is the "name" which I output to the console, and seems to appear as non-ASCII char sets. I'm certain it must be an issue with my memory reading because I've spent hours altering my string reading method to try variations, but they all return the same garbage.

    I'm getting the HP fine! And also getting some floats back for X or Y, although they don't look very healthy......... Take a look:


    Log:


    ?H?H
    Xpos: 0
    Ypos: 2110079349541077500
    Zpos: 0
    hp: 247

    ??H??H
    Xpos: 0
    Ypos: 2110145629476404804
    Zpos: 0
    hp: 222


    LHMH
    Xpos: 0
    Ypos: 2110101442852853268
    Zpos: 0
    hp: 156



    I know I'm a misguided soul, but I'm trying!!!

    I'd very much appreciate some of you geniuses to give me some feedback

    Object Names
  2. #2
    MaiN's Avatar Elite User
    Reputation
    335
    Join Date
    Sep 2006
    Posts
    1,047
    Thanks G/R
    0/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by johno22 View Post
    My

    Code:
    UInt64 currentGUID = (ulong)Globals.memoryManager.ReadLong(curObj + 0x30);
    looks a bit wrong too, it's not coming out as matching my ingame GUID.
    That's because the GUID you get there is actually the current objects GUID, of course.
    Last time I did memory editing, I used this for local player GUID.
    Code:
    localPlayerGUID = wow.ReadUInt64(s_curMgr + 0xC0);
    Then when you iterate the linked object list, you can check the objects' guids with localPlayerGUID, if they match you have the playerBase.

    Anyways, on-topic.
    I haven't really used your method to read the name of the objects.
    I've always been using ASM.
    This is the ASM for GetObjectName:

    Code:
    string GetObjectName(uint objBaseAddress)
    {
        uint codeCave = wow.AllocateMemory(0x1024);
    
        //get the adress of the call for vmt 48 (GetObjectName) (it might have moved btw)
        uint VMT48 = wow.ReadUInt((wow.ReadUInt(objBaseAddress) + (48 * 4)));
    
        wow.Asm.Clear();
        wow.Asm.AddLine("mov EDX, [{0}]", g_clientConnection);   //Start UpdateCurMgr
        wow.Asm.AddLine("mov EDX, [EDX+{0}]", g_offset);
        wow.Asm.AddLine("FS mov EAX, [0x2C]");
        wow.Asm.AddLine("mov EAX, [EAX]");
        wow.Asm.AddLine("add EAX, 8");
        wow.Asm.AddLine("mov [EAX], EDX"); // End UpdateCurMgr
    
        wow.Asm.AddLine("mov ecx, " + objBaseAddress);
        wow.Asm.AddLine("mov eax, " + VMT48);
        wow.Asm.AddLine("call eax");
        wow.Asm.AddLine("retn");
        return wow.ReadASCIIString(Core.wow.Asm.InjectAndExecute(codeCave), 64);
    }
    Credits to whoever wrote it.
    [16:15:41] Cypher: caus the CPU is a dick
    [16:16:07] kynox: CPU is mad
    [16:16:15] Cypher: CPU is all like
    [16:16:16] Cypher: whatever, i do what i want

  3. #3
    johno22's Avatar Private
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thank you, sir!

    I'll give it a try when these stupid "login unavailable" issues are fixed on wow EU.

    I'll probably end up moving over to ASM at some point, but for the minute I want to sharpen my understanding of how the whole memory concept is working; so I'm trying to write it from scratch.

  4. #4
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ASM is overrated.

  5. #5
    johno22's Avatar Private
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ah, sorry.. I didn't mean what I said there about that not being MY guid.

    I get my GUID via the following:

    Code:
    uint g_clientConnection = (uint)Globals.memoryManager.ReadInt(0x1139F80);
    uint s_curMgr = (uint)Globals.memoryManager.ReadInt((uint)g_clientConnection + 0x2C34);
    // Pending your advice, I'm using s_curMgr + 0xC0
    Globals.guid = (long)Globals.memoryManager.ReadLong((uint)s_curMgr + 0xC0);
    But the Globals.guid I get there still doesn't look right at all.. It doesn't match my in-game one ...

    That's my first issue, but then I begin an object loop, as so:

    Code:
    uint curObj = (uint)Globals.memoryManager.ReadInt((uint)s_curMgr + 0xAC);
    
    uint nextObj = 0;
    
       while (curObj != 0 && (curObj & 1) == 0)
                    {
    // Current object GUID
    UInt64 currentGUID = (ulong)Globals.memoryManager.ReadLong(curObj + 0x30);
    
    // Info sector for this base, with HP etc..
    int arrayAt8 = Globals.memoryManager.ReadInt(curObj + 0x08);
    I then attempt to extract the object name like so:

    Code:
    uint namePtr = (uint)Globals.memoryManager.ReadInt(curObj + 0x1F4);
    namePtr = (uint)Globals.memoryManager.ReadInt(namePtr + 0x078);
    string oName = Globals.memoryManager.ReadString(namePtr);
    Then I print it all out:

    Code:
    Console.WriteLine("name: " + oName);
    // Float from arrayAt8 + 0x40
    Console.WriteLine("Xpos: " + Globals.memoryManager.ReadFloat((uint)arrayAt8 + 0x40));
    // Float from arrayAt8 + 0x7D4
    Console.WriteLine("Ypos: " + Globals.memoryManager.ReadFloat((uint)arrayAt8 + 0x7D4));
    // Float from arrayAt8 + 0x48
    Console.WriteLine("Zpos: " + Globals.memoryManager.ReadFloat((uint)arrayAt8 + 0x48));
    // Float from arrayAt8 + (0x17 * 4)
    Console.WriteLine("hp: " + Globals.memoryManager.ReadFloat((uint)arrayAt8 + (0x17 * 4)));
    to continue the loop I do this:

    Code:
    // Move onto next object by adding 0x3C onto the curObj
    nextObj = (uint)Globals.memoryManager.ReadInt(curObj + 0x3C);
    My output is as follows:

    name: 4? 5?
    Xpos: 0
    Ypos: 545788281
    Zpos: 0
    hp: 0

    name: ?
    ? ?
    ?
    Xpos: 0
    Ypos: 545789729
    Zpos: 0
    hp: 0

    name: ?? ??
    Xpos: 0
    Ypos: 545791177
    Zpos: 0
    hp: 0

    name: ,? -?
    Xpos: 0
    Ypos: 0
    Zpos: 0
    hp: 0

    name: ?? ??
    Xpos: 4294967295
    Ypos: 0
    Zpos: 0
    hp: 0

    name: ??????
    Xpos: 0
    Ypos: 0
    Zpos: 0
    hp: 80

    name:
    Xpos: -72054291208077312
    Ypos: 43379891244105728
    Zpos: 0
    hp: 0

    name:
    Xpos: -72054291208077312
    Ypos: 43379891244105728
    Zpos: 0
    hp: 0

    name:
    Xpos: -72054291208077312
    Ypos: 43379891244105728
    Zpos: 0
    hp: 0

    name: ????
    Xpos: 0
    Ypos: 2082954157159359428
    Zpos: 0
    hp: 55

    name: ?"??"?
    Xpos: 0
    Ypos: 2082976250471135196
    Zpos: 0
    hp: 55

    name: ?J??J?
    Xpos: 0
    Ypos: 2083020437094686732
    Zpos: 0
    hp: 42

    name: ?^??^?
    Xpos: 0
    Ypos: 2083042530406462500
    Zpos: 0
    hp: 55

    name: ????
    Xpos: 0
    Ypos: 2083086717030014036
    Zpos: 0
    hp: 8

    name: 4??5??
    Xpos: 0
    Ypos: 2083108810341789804
    Zpos: 0
    hp: 55

    name:
    Xpos: -72052092184821760
    Ypos: 43379891244105728
    Zpos: 0
    hp: 0

    name: L??M??
    Xpos: 0
    Ypos: 2083130903653565572
    Zpos: 0
    hp: 86
    As you can see, sometimes my HP is exactly right - I checked it to the NPCs around me. But sometimes I'm getting 0.... So obviously there's something not quite right. Also, the name is never working, and the coords seem a bit unpredicable.
    Last edited by johno22; 06-13-2009 at 07:58 AM.

  6. #6
    Shynd's Avatar Contributor
    Reputation
    97
    Join Date
    May 2008
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    HP is not stored as a floating-point integer, just a regular 32-bit integer, so you should not be using ReadFloat. You need to do more research on how to read an object's position because you're doing it wrong no matter what type of object it is (and, yes, it does change between object types). I would venture to assume that you're somehow reading names incorrectly as well, though I honestly don't know.

    Again, all of your issues--as with almost every single OTHER issue anyone posts about on these forums--can and will be solved by YOU doing the necessary research and learning the necessary principles of memory manipulation.

    Kindly **** off until you know what you're doing.

  7. #7
    johno22's Avatar Private
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Is this not research? Asking questions, to learn things?

    It's not like this is a subject rife with available information. It's quite the clandestine taboo.

  8. #8
    Shynd's Avatar Contributor
    Reputation
    97
    Join Date
    May 2008
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You think asking questions is research? For research papers in school, did you go to the library, confront the librarian, and tell her to fact-check your paper? All of the information you need is available to you here in an already-typed and archived format, MAKE USE OF IT.

    And this subject isn't well documented? REALLY?

    700+ posts and almost 10,000 replies? Nah, there's hardly any information, especially considering I can distinctly remember at least a dozen threads off the top of my head in the past 6 months that ask exactly the same sh't you are asking.
    Last edited by Shynd; 06-13-2009 at 08:37 AM. Reason: clarification

  9. #9
    johno22's Avatar Private
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The HP float I'm reading from is irrelevant, but thanks for pointing it out. Do my pointers and offsets look ok?

    In all fairness, I've spent the last week doing research on this object-reading area, it's not like I've just started it and decided to ask a question. Half the fun is in experimenting, that's why I like programming. But the research available is in all sorts of various forms, and those with offsets are pretty much all out-dated.

  10. #10
    johno22's Avatar Private
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Shynd View Post
    You think asking questions is research? For research papers in school, did you go to the library, confront the librarian, and tell her to fact-check your paper? All of the information you need is available to you here in an already-typed and archived format, MAKE USE OF IT.
    People are a form of qualitative research, otherwise what would be the point of interviews or teachers?

  11. #11
    Shynd's Avatar Contributor
    Reputation
    97
    Join Date
    May 2008
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well, we are not here to spoonfeed you. We have already spoonfed other retards and it is your responsibility to find that baby food and apply it to your own project.

    If you show that you've done more than the bare-minimum of work YOURSELF, people will be more inclined to help you.

    Read the ****ing rules: this is an advanced forum and, as such, requires a bit more knowledge before entering and polluting it with stupid ****ing questions like "i reeding hp as float but 4not getting right!! y???"

    It is your responsibility, once again, to understand the BASIC FUNDAMENTALS OF VALUE TYPES and, if you did, it would be common-****ing-sense that HP is not stored as a float ("I have 124.6 health!!" == no).

    Jesus, **** me sideways, can you be any thicker?

  12. #12
    johno22's Avatar Private
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Shynd View Post
    Well, we are not here to spoonfeed you. We have already spoonfed other retards and it is your responsibility to find that baby food and apply it to your own project.

    If you show that you've done more than the bare-minimum of work YOURSELF, people will be more inclined to help you.

    Read the ****ing rules: this is an advanced forum and, as such, requires a bit more knowledge before entering and polluting it with stupid ****ing questions like "i reeding hp as float but 4not getting right!! y???"

    It is your responsibility, once again, to understand the BASIC FUNDAMENTALS OF VALUE TYPES and, if you did, it would be common-****ing-sense that HP is not stored as a float ("I have 124.6 health!!" == no).

    Jesus, **** me sideways, can you be any thicker?
    Dude... I'd copied and pasted my data reader method from an X and Y coord, and just forgot to switch it to an INT. That was nothing to do with my question at all... Infact, that line of code is pretty much the only one that actually worked properly, and it's the one you're nit-picking at.

    I apologise if I've somehow offended you; I'm just here to get info to finish my project and learn, maybe help someone else with what I've picked up.

  13. #13
    suicidity's Avatar Contributor
    Reputation
    207
    Join Date
    Oct 2006
    Posts
    1,439
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Shynd View Post
    Jesus, **** me sideways, can you be any thicker?
    I don't go by Jesus anymore; There's a lot of pissed of people looking for me. But I am pretty thick; Oh wait, you're not talking about in the pants..


  14. #14
    johno22's Avatar Private
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by suicidity View Post
    I don't go by Jesus anymore; There's a lot of pissed of people looking for me. But I am pretty thick; Oh wait, you're not talking about in the pants..
    :P lol

    i heard it's about yay "thick"

    |------------------|

  15. #15
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Question has been answered in several threads before. Do some research, and make sure you read the rules for this section.

Similar Threads

  1. Get Item Object Name
    By luciferc in forum WoW Memory Editing
    Replies: 3
    Last Post: 06-11-2009, 04:51 PM
  2. [?] Reading Object Name
    By Smarter in forum WoW Memory Editing
    Replies: 4
    Last Post: 04-03-2009, 08:03 PM
  3. Object name in new address ?
    By j121780im in forum WoW Memory Editing
    Replies: 3
    Last Post: 01-16-2009, 01:10 PM
  4. Object Name and id HELP!!!
    By Fireblast in forum WoW EMU Questions & Requests
    Replies: 4
    Last Post: 08-28-2008, 08:47 PM
  5. object names?? confused..
    By arynock in forum WoW Memory Editing
    Replies: 41
    Last Post: 07-25-2008, 03:46 AM
All times are GMT -5. The time now is 03:49 PM. 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