How to get started with Memory Editing? Quick basic question menu

User Tag List

Results 1 to 11 of 11
  1. #1
    crunk001's Avatar Banned CoreCoins Purchaser
    Reputation
    241
    Join Date
    Aug 2008
    Posts
    895
    Thanks G/R
    100/47
    Trade Feedback
    1 (100%)
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    How to get started with Memory Editing? Quick basic question

    So I have digged out a couple of guides that are from around 2010. The date probably does not matter.

    My question is, can I follow them without wasting time? Using my time correctly is crucial for me.

    Can you possibly recommend steps or a concrete guide on how to memory edit? From start to finish

    - and also: Is packet sniffing and editing the same as memory editing? If not, what is superior and can be actually used on live / probably never can get detected [because here] ?


    Thank's in advance

    How to get started with Memory Editing? Quick basic question
  2. #2
    uzzy13u's Avatar Active Member
    Reputation
    56
    Join Date
    Oct 2008
    Posts
    102
    Thanks G/R
    22/21
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    // edit - removed
    Last edited by uzzy13u; 03-24-2022 at 05:57 AM.

  3. Thanks crunk001 (1 members gave Thanks to uzzy13u for this useful post)
  4. #3
    Affenmann3000's Avatar Member
    Reputation
    1
    Join Date
    Nov 2013
    Posts
    8
    Thanks G/R
    2/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I dont want to open another basic thread, so maybe it's ok to post my current problem here.
    I just want to read the coordinates of the player. I have C# knowledge and already built some months ago
    a little winform which showed me the position of my player. I simply searched the coordinates with CheatEngine,
    subtracted the base adress for the offsets and everything works fine. Today I tried the same but the value is always wrong when I restart Wow.
    I know the Obfuscation came, but did this also change the distance between offsets and base adress now?
    When I take the offsets from the current Update Threads, do I need to take the Objectmanager offset and X as one offset?
    Here is my code:
    Code:
                uint offsetPlayerX = 0xDB87EC;
                uint offsetPlayerY = 0xDB87F0;
                uint offsetPlayerZ = 0xEE6F70;
    
                Process[] procs = Process.GetProcessesByName("Wow");
    
                IntPtr ptrBaseAdress = procs[0].MainModule.BaseAddress;
    
                var baseAdress = (uint)ptrBaseAdress;
    
                var wow = new BlackMagic(procs[0].Id);           
    
                var playerX = wow.ReadFloat(baseAdress + offsetPlayerX);
                var playerY = wow.ReadFloat(baseAdress + offsetPlayerY);
                var playerZ = wow.ReadFloat(baseAdress + offsetPlayerZ);

  5. #4
    FunnybunnyJR's Avatar Member Authenticator enabled
    Reputation
    9
    Join Date
    Aug 2007
    Posts
    20
    Thanks G/R
    2/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    a general hint would be that those values reside in an object which is dynamic, or runtime allocated, so by it's very nature, that object is going to have a different address every time the process starts.

    there is a wealth of information in this forum about the "object manager" which is an important structure in the wow client, and the mechanism by which you can find the address of any and all "objects" (speaking specifically about wow's hierarchy of ingame objects and not generally about c++ objects) including your toon, other toons, npcs, doors, zeppelins, and really any server-spawned entity.

  6. #5
    crunk001's Avatar Banned CoreCoins Purchaser
    Reputation
    241
    Join Date
    Aug 2008
    Posts
    895
    Thanks G/R
    100/47
    Trade Feedback
    1 (100%)
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by uzzy13u View Post
    for start you can learn some programming lang because it will help you in 2 ways, hacking games or to work as a programmer in future why not...
    after you know some programming lang you can start to learn little assembly from those videos Stephen Chapman
    - YouTube

    this is RLY the basic info but my point is if you want to hack something rly good you must know assembly which again requires programming knowledge
    thanks man, I'll appreciate it. yes, I've read and theoretically know about the entire reverse engineering approach

  7. #6
    xalcon's Avatar Contributor ふたなり
    Authenticator enabled
    Reputation
    198
    Join Date
    Oct 2008
    Posts
    291
    Thanks G/R
    20/58
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    packet sniffing and memory editing are 2 completly different things.

    Packet sniffing just means to intercept a network stream to grab packets which are being send/received. Nothing else.

    Memory editing generally means reading and writing to the virtual address space of a different process to gather information or modify its behavior. I.e. you can write to certain locations in the wow process to cause your toon to move to a certain location using the click-to-move (CTM) feature or hook a method so it runs your own code instead everytime it is called.

    If you want to learn all this by using WoW as your game of choice, you will probably waste a lot of time and/or accounts just because of the recent changes to the anti cheat system (packing of the executable, anti debug, warden changes, etc). I suggest going with a different game that doesnt have any anti-cheat to begin with if you are so worried about wasting your time.

    For me, the whole reverse engineering thing was never a waste of time. I've learned a lot that I could apply at my job. As it stands right now, I wont do anything related to WoW RE anytime soon - i'm really attached to my account

    @Affenmann3000
    This thread isnt really the right place for your question. Since your code is several months old, you probably didnt update your offsets after the 7.3.2 patch.
    Last edited by xalcon; 01-12-2018 at 05:19 AM.
    "Threads should always commit suicide - they should never be murdered" - DirectX SDK

  8. Thanks crunk001 (1 members gave Thanks to xalcon for this useful post)
  9. #7
    Affenmann3000's Avatar Member
    Reputation
    1
    Join Date
    Nov 2013
    Posts
    8
    Thanks G/R
    2/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by xalcon View Post
    packet sniffing and memory editing are 2 completly different things.

    Packet sniffing just means to intercept a network stream to grab packets which are being send/received. Nothing else.

    Memory editing generally means reading and writing to the virtual address space of a different process to gather information or modify its behavior. I.e. you can write to certain locations in the wow process to cause your toon to move to a certain location using the click-to-move (CTM) feature or hook a method so it runs your own code instead everytime it is called.

    If you want to learn all this by using WoW as your game of choice, you will probably waste a lot of time and/or accounts just because of the recent changes to the anti cheat system (packing of the executable, anti debug, warden changes, etc). I suggest going with a different game that doesnt have any anti-cheat to begin with if you are so worried about wasting your time.

    For me, the whole reverse engineering thing was never a waste of time. I've learned a lot that I could apply at my job. As it stands right now, I wont do anything related to WoW RE anytime soon - i'm really attached to my account

    @Affenmann3000
    This thread isnt really the right place for your question. Since your code is several months old, you probably didnt update your offsets after the 7.3.2 patch.
    I tried to update the Offsets with current one but it didn't worked. I am using blackmagic lib.
    For example x coordinate.
    Code:
    float playerX = wow.readfloat(baseadress + objectmanagerOffset + xOffset)
    Would it be correct this way?

  10. #8
    danwins's Avatar Contributor
    Reputation
    189
    Join Date
    Mar 2013
    Posts
    143
    Thanks G/R
    6/62
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Affenmann3000 View Post
    I tried to update the Offsets with current one but it didn't worked. I am using blackmagic lib.
    For example x coordinate.
    Code:
    float playerX = wow.readfloat(baseadress + objectmanagerOffset + xOffset)
    Would it be correct this way?
    The X coordinate is part of the player struct, which is pointed to by the object manager.

    To read it, You need to traverse the object managers linked list to find the player object's pointer, then read the XYZ coords out of the player struct.

    see here: https://www.ownedcore.com/forums/wor...ml#post3789680 ([7-3-0-25195] Finding GUID in ObjectList (Cheat Engine))

    Originally Posted by danwins View Post
    Here is a quick snippet that should return the current player pointer:

    Code:
    [StructLayout(LayoutKind.Sequential)]
    struct WGUID
    {
      public ulong m_high;
      public ulong m_low;
    }
    
    private uint playerBase()
    {
      uint curMgr = Memory.Read<uint>(Memory.BaseAddress + 0x00FF31FC);
    
      WGUID ActivePlayer = Memory.Read<WGUID>(curMgr + 0xF8);
    
      uint firstObj = Memory.Read<uint>(curMgr + 0xC);
      uint nextObj = Memory.Read<uint>(curMgr + 0x4);
    
      uint curObj = firstObj;
      while (curObj != 0x0)
      {
        WGUID guid = Memory.Read<WGUID>(curObj + 0x30);
    
        if (guid.m_high == ActivePlayer.m_high && guid.m_low == ActivePlayer.m_low)
        {
          return curObj;
        }
    
        curObj = Memory.Read<uint>(curObj + nextObj + 0x4);
      }
    
      return 0;
    }
    Last edited by danwins; 01-12-2018 at 07:56 AM.

  11. #9
    crunk001's Avatar Banned CoreCoins Purchaser
    Reputation
    241
    Join Date
    Aug 2008
    Posts
    895
    Thanks G/R
    100/47
    Trade Feedback
    1 (100%)
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by xalcon View Post
    packet sniffing and memory editing are 2 completly different things.

    Packet sniffing just means to intercept a network stream to grab packets which are being send/received. Nothing else.

    Memory editing generally means reading and writing to the virtual address space of a different process to gather information or modify its behavior. I.e. you can write to certain locations in the wow process to cause your toon to move to a certain location using the click-to-move (CTM) feature or hook a method so it runs your own code instead everytime it is called.

    If you want to learn all this by using WoW as your game of choice, you will probably waste a lot of time and/or accounts just because of the recent changes to the anti cheat system (packing of the executable, anti debug, warden changes, etc). I suggest going with a different game that doesnt have any anti-cheat to begin with if you are so worried about wasting your time.

    For me, the whole reverse engineering thing was never a waste of time. I've learned a lot that I could apply at my job. As it stands right now, I wont do anything related to WoW RE anytime soon - i'm really attached to my account

    @Affenmann3000
    This thread isnt really the right place for your question. Since your code is several months old, you probably didnt update your offsets after the 7.3.2 patch.
    thank you for sharing your experience and information! much appreciated

    especially when you want to edit something, get something, but first have to dig through all the terms

  12. #10
    squiggy's Avatar Active Member
    Reputation
    66
    Join Date
    Aug 2007
    Posts
    45
    Thanks G/R
    40/23
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Cheat engine has a pretty good built in interactive tutorial which can help you get started.

  13. #11
    Affenmann3000's Avatar Member
    Reputation
    1
    Join Date
    Nov 2013
    Posts
    8
    Thanks G/R
    2/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by danwins View Post
    The X coordinate is part of the player struct, which is pointed to by the object manager.

    To read it, You need to traverse the object managers linked list to find the player object's pointer, then read the XYZ coords out of the player struct.

    see here: https://www.ownedcore.com/forums/wor...ml#post3789680 ([7-3-0-25195] Finding GUID in ObjectList (Cheat Engine))
    First thanks for your answer! Which library did you use in your Snippet for accessing the Memory?


    EDIT: I just found it. It should be GreyMagic?
    Last edited by Affenmann3000; 01-13-2018 at 07:43 PM.

Similar Threads

  1. How to get ITEMs with your low alt, by fighting with your high main!!
    By 41p32 in forum World of Warcraft Exploits
    Replies: 15
    Last Post: 12-25-2007, 04:44 AM
  2. How to get rep with Zandalar
    By Weekday in forum World of Warcraft Exploits
    Replies: 13
    Last Post: 10-27-2007, 10:31 PM
  3. How to get rich with your first charr!
    By andrelie in forum World of Warcraft Guides
    Replies: 16
    Last Post: 03-26-2007, 01:25 PM
  4. How to get out of an instance quick
    By Battlemidge in forum World of Warcraft Exploits
    Replies: 14
    Last Post: 11-10-2006, 09:41 PM
All times are GMT -5. The time now is 09:37 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