[C#] Simple read-only implementation menu

Shout-Out

User Tag List

Results 1 to 3 of 3
  1. #1
    T@rget's Avatar Contributor
    Reputation
    91
    Join Date
    Nov 2006
    Posts
    223
    Thanks G/R
    2/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [C#] Simple read-only implementation

    Hello folks,

    I'm developing an application which adds support for RGB gaming gear to games.
    I'd love to do WoW but I'm not very familiar with memory reading WoW (For my application I've mostly tried to avoid memory reading, but rely on official API's/SDK's

    If anyone could provide a working sample for 64-bits of reading some simple things like player class, level, HP etc. that would be very helpful
    Project link should someone be curious: GitHub - SpoinkyNL/Artemis: Adds third-party support for RGB keyboards to games.

    [C#] Simple read-only implementation
  2. #2
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1515
    Join Date
    May 2008
    Posts
    2,433
    Thanks G/R
    81/336
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    WoW does not have an API that is accessible outside of it's own process, so you'll have no choice but to handle the data with memory reading. Nevertheless, I've not heard of Warden detecting third party tools that only read memory. So you should be safe in that regard.

    Reading info for the player is easy - you won't need any other objects' information so you can avoid the object manager and just use CGPlayer_C::m_activePlayerPtr (a static variable that points directly to the player entity.) In 7.0.3.22522 this lies at Wow.exe!00DE545C and Wow-64.exe!000000000169BCB0 on the x86 and x64 clients respectively. You can then read class, level, and health information from the descriptors, which are pointed to at +0x08.

    Pseudo-C# example:

    Code:
    // Offsets:
    static IntPtr CGPlayer_C__m_activePlayerPtr = IntPtr.Size == 4 ?
        (IntPtr) 0x00DE545C :        // 7.0.3.22522 x86
        (IntPtr) 0x000000000169BCB0; // 7.0.3.22522 x64
    
    // Descriptors:
    const int CGUnitData__health = 12 + 48;
    Code:
    // Read the player's health:
    var player = Memory.Read<IntPtr>(wowBaseAddress + CGPlayer_C__m_activePlayerPtr);
    var health = GetDescriptor<long>(player, CGUnitData__health);
    Code:
    static T GetDescriptor<T>(IntPtr player, int descriptor) {
        var descriptorsPtr = Memory.Read<IntPtr>(player + 0x08);
        return Memory.Read<T>(descriptorsPtr, descriptor * 4);
    }
    Last edited by Jadd; 08-28-2016 at 01:19 PM.

  3. Thanks homer91, T@rget (2 members gave Thanks to Jadd for this useful post)
  4. #3
    T@rget's Avatar Contributor
    Reputation
    91
    Join Date
    Nov 2006
    Posts
    223
    Thanks G/R
    2/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thank you for your help, it got me on the right track.
    I've opted to go with the ObjectManager afterall so I can do some more stuff like target etc.
    When I add WoW support I'll just have to add a little disclaimer that it breaks the ToS and is at the users own risk, however minimal the risk may be.

Similar Threads

  1. [discussion] Dangers of memory-read(-only) tools
    By KillerJohn in forum Diablo 3 General
    Replies: 19
    Last Post: 01-06-2013, 06:20 AM
  2. Write to Read Only Memory ( C# )?
    By Amrok in forum WoW Memory Editing
    Replies: 4
    Last Post: 08-24-2011, 12:42 PM
  3. Navicat tables are "read only"
    By gangstagreen in forum WoW EMU Questions & Requests
    Replies: 8
    Last Post: 12-12-2008, 09:35 PM
  4. [Guide] WARNING! Read only if you want to make gold...
    By sykopath70 in forum Age of Conan Exploits|Hacks
    Replies: 11
    Last Post: 10-30-2008, 05:36 AM
  5. read only if your cool
    By Cryt in forum WoW ME Questions and Requests
    Replies: 0
    Last Post: 06-03-2007, 03:24 PM
All times are GMT -5. The time now is 02:48 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