HP Structure (Reclass) to be used in a hacks.. [0.1.0d] menu

User Tag List

Page 1 of 5 12345 LastLast
Results 1 to 15 of 67
  1. #1
    KronosQC's Avatar Member
    Reputation
    12
    Join Date
    Dec 2024
    Posts
    30
    Thanks G/R
    1/11
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    HP Structure (Reclass) to be used in a hacks.. [1.0.1e]

    Offsets 0.1.0f -
    Code:
    <pathofexile.exe>+ 03B8FEE8 {0x60, 0x68, 0x38, 0x20, 0x208, 0x28} HPRegen  ->Float
    <pathofexile.exe>+ 03B8FEE8 {0x60, 0x68, 0x38, 0x20, 0x208, 0x2C} MaxHP -> int32
    <pathofexile.exe>+ 03B8FEE8 {0x60, 0x68, 0x38, 0x20, 0x208, 0x30} CurrentHP -> int32
    
    <pathofexile.exe>+ 03B8FEE8 {0x60, 0x68, 0x38, 0x20, 0x208, 0x78} MPRegen ->Float
    <pathofexile.exe>+ 03B8FEE8 {0x60, 0x68, 0x38, 0x20, 0x208, 0x80} MaximumMP -> int32
    <pathofexile.exe>+ 03B8FEE8 {0x60, 0x68, 0x38, 0x30, 0x208, 0x7C} CurrentMP  -> int32
    
    HealthPercentage = (double)HealthCurrent / HealthMax * 100;
    ManaPercentage = (double)ManaCurrent / ManaMax * 100;
    Ok, pointer+offsets fixed for new update..

    Test.png

    test3.png
    Last edited by KronosQC; 2 Days Ago at 01:19 PM. Reason: Updated 14-01-2025

    HP Structure (Reclass) to be used in a hacks.. [0.1.0d]
  2. Thanks coyes, XORReverseEngineering, GameHelper, Chav, kunto2020, dumpcheck, Capotaum, hullamul (8 members gave Thanks to KronosQC for this useful post)
  3. #2
    KronosQC's Avatar Member
    Reputation
    12
    Join Date
    Dec 2024
    Posts
    30
    Thanks G/R
    1/11
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Like a bot for autoing health potion in c++.
    I also provided the ptr adress and all the offsets, if you want to use another coding language :P.

  4. #3
    KronosQC's Avatar Member
    Reputation
    12
    Join Date
    Dec 2024
    Posts
    30
    Thanks G/R
    1/11
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i'm coding a quick dll to see if it works correctly. i will post if yes.

  5. #4
    Xab3r's Avatar Active Member CoreCoins Purchaser
    Reputation
    46
    Join Date
    Jul 2011
    Posts
    52
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by KronosQC View Post
    i'm coding a quick dll to see if it works correctly. i will post if yes.
    Tested, works just fine, thank you! Would you mind if I will show how to integrate this with behavior trees to automate potions ?

    Code:
    using EyeAuras.Memory;
    using EyeAuras.Memory.MPFS;
    using EyeAuras.Memory.Scaffolding;
    
    ISendInputUnstableScriptingApi SendInput { get; set; } = GetService<ISendInputUnstableScriptingApi>(); //could be used to generate inputs
    
    Log.Info("Hello, world! I will be reading Current/Max HP values");
    Main();
    
    void Main()
    {
        using var process =
            LocalProcess.ByProcessName("pathofexile"); //uses naive memory read RPM under the hood
    
        Log.Info($"Process: {process}");
        var modules = process.GetProcessModules(); //enumerate all loaded modules
        var memory = process.MemoryOfModule("pathofexile.exe"); //get specific module by name
        Log.Info($"Module: {memory}, base: {memory.BaseAddress.ToHexadecimal()}");
    
        const long PlayerOffset = 0x03886DB0; //v 4.1.0d ?
    
        //run this script until it is cancelled by trigger or user
        while (!cancellationToken.IsCancellationRequested)
        {
            using var forced = new ForcedDelayBlock(TimeSpan.FromMilliseconds(100));  //read at most 10 times per second
    
            var currentHp = memory.Read<uint>(memory.BaseAddress + PlayerOffset, 0x38, 0x18, 0x40, 0x20, 0x208, 0x30);
            var maxHp = memory.Read<uint>(memory.BaseAddress + PlayerOffset, 0x38, 0x18, 0x40, 0x20, 0x208, 0x2C);
    
            //now you can either use those values directly, e.g. use potion
            //SendInput.KeyPress(Key.D1);
            //or, the better approach would be to store those as variables and then use 
            //them as a part of BehaviorTree which will check values and act accordingly
            //i.e. run both memory analysis + behavior tree
            Variables["CurrentHp"] = currentHp;
            Variables["MaxHp"] = maxHp;
        }
    }
    Last edited by Xab3r; 12-12-2024 at 12:11 PM.

  6. Thanks coyes (1 members gave Thanks to Xab3r for this useful post)
  7. #5
    KronosQC's Avatar Member
    Reputation
    12
    Join Date
    Dec 2024
    Posts
    30
    Thanks G/R
    1/11
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for letting me know and for testing @Xab3r !! Can i get in touch to you on discord ? Just add kronosqc

  8. #6
    coyes's Avatar Member
    Reputation
    2
    Join Date
    Dec 2024
    Posts
    2
    Thanks G/R
    4/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thank you, that was exactly what i was searching for.
    Here is a simple Auto Heal in Python I did using your contribution =)

    Utility
    Code:
    import ctypes
    
    kernel32 = ctypes.windll.kernel32
    
    def FindDMAAddy(hProc, base, offsets, arch=64):
        size=8
        if (arch == 32): size = 4
        adress = ctypes.c_uint64(base)
        for offset in offsets:
            kernel32.ReadProcessMemory(hProc, adress, ctypes.byref(adress), size, 0)
            adress = ctypes.c_uint64(adress.value + offset)
        return(adress.value)
    Autoheal
    Code:
    import time
    import win32api, win32gui
    import win32con
    from pymem import Pymem
    import utility
    
    ###Autopot  by coys####
    # Addresses by KronosQC, ty
    #"PathOfExile.exe"+03886DB0
    #38  18 40 20 208 2c - MaxHP
    #38  18 40 20 208 30 - CurHP
    #38  18 40 20 208 7c - MaxMP
    #38  18 40 20 208 80 - CurMP
    process_name = "PathOfExile.exe"
    pointer = 0x03886DB0
    offsets_CurHP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x30]
    offsets_MaxHP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x2c]
    offsets_CurMP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x80]
    offsets_MaxMP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x7c]
    
    # Heals %
    heal_hp = 70
    heal_mp = 40
    
    #Handle+Base
    try:
        pm = Pymem(process_name)
        print(f"Conectado ao processo: {process_name}")
        hProc = pm.process_handle
        base_pointer = pm.base_address + pointer
    except Exception as e:
        print(f"Erro ao conectar ao processo: {e}")
        exit()
    
    janela_jogo = win32gui.FindWindow(None, "Path of Exile 2")
    if not janela_jogo:
        print("Janela do jogo não encontrada.")
        exit()
    
    #healbot 
    while True:
        try:
            maxhp_address = utility.FindDMAAddy(hProc, base_pointer, offsets_MaxHP, 64)
            curhp_address = utility.FindDMAAddy(hProc, base_pointer, offsets_CurHP, 64)
            maxmana_address = utility.FindDMAAddy(hProc, base_pointer, offsets_MaxMP, 64)
            curmana_address = utility.FindDMAAddy(hProc, base_pointer, offsets_CurMP, 64)
            current_hp = pm.read_int(curhp_address)
            max_hp = pm.read_int(maxhp_address)
            current_mp = pm.read_int(curmana_address)
            max_mp = pm.read_int(maxmana_address)
    
            hp_percent = (current_hp / max_hp) * 100 if max_hp != 0 else 0
            mp_percent = (current_mp / max_mp) * 100 if max_mp != 0 else 0
    
            if hp_percent <= heal_hp:
                time.sleep(0.2)
                win32api.PostMessage(janela_jogo, win32con.WM_KEYDOWN, ord('1'), 0)
                win32api.PostMessage(janela_jogo, win32con.WM_KEYUP, ord('1'), 0)
    
            if mp_percent <= heal_mp:
                time.sleep(0.2)
                win32api.PostMessage(janela_jogo, win32con.WM_KEYDOWN, ord('2'), 0)
                win32api.PostMessage(janela_jogo, win32con.WM_KEYUP, ord('2'), 0)
    
        except Exception as e:
            print(f"Erro ao acessar memória: {e}")
    
        time.sleep(0.5)
    I apreaciate any tips in how to improve and how to do better =)

    Edit*
    Amazing post too Xab3r that was very helpful
    Last edited by coyes; 12-13-2024 at 12:00 AM.

  9. Thanks PittePat (1 members gave Thanks to coyes for this useful post)
  10. #7
    XORReverseEngineering's Avatar Active Member
    Reputation
    48
    Join Date
    Feb 2021
    Posts
    40
    Thanks G/R
    35/45
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by coyes View Post
    Thank you, that was exactly what i was searching for.
    Here is a simple Auto Heal in Python I did using your contribution =)

    Utility
    Code:
    import ctypes
    
    kernel32 = ctypes.windll.kernel32
    
    def FindDMAAddy(hProc, base, offsets, arch=64):
        size=8
        if (arch == 32): size = 4
        adress = ctypes.c_uint64(base)
        for offset in offsets:
            kernel32.ReadProcessMemory(hProc, adress, ctypes.byref(adress), size, 0)
            adress = ctypes.c_uint64(adress.value + offset)
        return(adress.value)
    Autoheal
    Code:
    import time
    import win32api, win32gui
    import win32con
    from pymem import Pymem
    import utility
    
    ###Autopot  by coys####
    # Addresses by KronosQC, ty
    #"PathOfExile.exe"+03886DB0
    #38  18 40 20 208 2c - MaxHP
    #38  18 40 20 208 30 - CurHP
    #38  18 40 20 208 7c - MaxMP
    #38  18 40 20 208 80 - CurMP
    process_name = "PathOfExile.exe"
    pointer = 0x03886DB0
    offsets_CurHP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x30]
    offsets_MaxHP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x2c]
    offsets_CurMP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x80]
    offsets_MaxMP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x7c]
    
    # Heals %
    heal_hp = 70
    heal_mp = 40
    
    #Handle+Base
    try:
        pm = Pymem(process_name)
        print(f"Conectado ao processo: {process_name}")
        hProc = pm.process_handle
        base_pointer = pm.base_address + pointer
    except Exception as e:
        print(f"Erro ao conectar ao processo: {e}")
        exit()
    
    janela_jogo = win32gui.FindWindow(None, "Path of Exile 2")
    if not janela_jogo:
        print("Janela do jogo não encontrada.")
        exit()
    
    #healbot 
    while True:
        try:
            maxhp_address = utility.FindDMAAddy(hProc, base_pointer, offsets_MaxHP, 64)
            curhp_address = utility.FindDMAAddy(hProc, base_pointer, offsets_CurHP, 64)
            maxmana_address = utility.FindDMAAddy(hProc, base_pointer, offsets_MaxMP, 64)
            curmana_address = utility.FindDMAAddy(hProc, base_pointer, offsets_CurMP, 64)
            current_hp = pm.read_int(curhp_address)
            max_hp = pm.read_int(maxhp_address)
            current_mp = pm.read_int(curmana_address)
            max_mp = pm.read_int(maxmana_address)
    
            hp_percent = (current_hp / max_hp) * 100 if max_hp != 0 else 0
            mp_percent = (current_mp / max_mp) * 100 if max_mp != 0 else 0
    
            if hp_percent <= heal_hp:
                time.sleep(0.2)
                win32api.PostMessage(janela_jogo, win32con.WM_KEYDOWN, ord('1'), 0)
                win32api.PostMessage(janela_jogo, win32con.WM_KEYUP, ord('1'), 0)
    
            if mp_percent <= heal_mp:
                time.sleep(0.2)
                win32api.PostMessage(janela_jogo, win32con.WM_KEYDOWN, ord('2'), 0)
                win32api.PostMessage(janela_jogo, win32con.WM_KEYUP, ord('2'), 0)
    
        except Exception as e:
            print(f"Erro ao acessar memória: {e}")
    
        time.sleep(0.5)
    I apreaciate any tips in how to improve and how to do better =)

    Edit*
    Amazing post too Xab3r that was very helpful
    thank you, it's working
    Last edited by XORReverseEngineering; 12-13-2024 at 09:40 AM.

  11. Thanks PittePat (1 members gave Thanks to XORReverseEngineering for this useful post)
  12. #8
    setim's Avatar Member
    Reputation
    9
    Join Date
    Mar 2020
    Posts
    103
    Thanks G/R
    0/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by XORReverseEngineering View Post
    did it worked for you? I tested, and nothing happened
    I just try it, it work.

  13. #9
    kunto2020's Avatar Member
    Reputation
    1
    Join Date
    Feb 2021
    Posts
    12
    Thanks G/R
    7/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks bro for CE

  14. #10
    KronosQC's Avatar Member
    Reputation
    12
    Join Date
    Dec 2024
    Posts
    30
    Thanks G/R
    1/11
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    No problemo , glad you guys are happy!

  15. Thanks XORReverseEngineering (1 members gave Thanks to KronosQC for this useful post)
  16. #11
    spdkllz's Avatar Member
    Reputation
    2
    Join Date
    Jul 2012
    Posts
    18
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Could you also provide offsets for ES?

    Edit: Also mana pointers do not work for me, the returned values for CurMana and MaxMana do not match game values
    Last edited by spdkllz; 12-13-2024 at 05:15 PM.

  17. #12
    KronosQC's Avatar Member
    Reputation
    12
    Join Date
    Dec 2024
    Posts
    30
    Thanks G/R
    1/11
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by spdkllz View Post
    Could you also provide offsets for ES?

    Edit: Also mana pointers do not work for me, the returned values for CurMana and MaxMana do not match game values
    Yeah i will take a look into it..

  18. #13
    spdkllz's Avatar Member
    Reputation
    2
    Join Date
    Jul 2012
    Posts
    18
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Looked around a bit and found the ES offsets for anyone interested:

    offsets_CurES = [0x38, 0x18, 0x40, 0x20, 0x208, 0xB8]
    offsets_MaxES = [0x38, 0x18, 0x40, 0x20, 0x208, 0xB4]


    Edit: One observation, the offsets stop working if I go to character selection page and go back in the game. I end up having to restart POE client to get offsets working again.
    Last edited by spdkllz; 12-13-2024 at 07:22 PM.

  19. #14
    coyes's Avatar Member
    Reputation
    2
    Join Date
    Dec 2024
    Posts
    2
    Thanks G/R
    4/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by spdkllz View Post
    Looked around a bit and found the ES offsets for anyone interested:

    offsets_CurES = [0x38, 0x18, 0x40, 0x20, 0x208, 0xB8]
    offsets_MaxES = [0x38, 0x18, 0x40, 0x20, 0x208, 0xB4]


    Edit: One observation, the offsets stop working if I go to character selection page and go back in the game. I end up having to restart POE client to get offsets working again.
    That was also happening with me, and tbf idk why, i double checked with CE table and they really change if you go to the log in screen.

    Originally Posted by spdkllz View Post
    Could you also provide offsets for ES?

    Edit: Also mana pointers do not work for me, the returned values for CurMana and MaxMana do not match game values
    Idk how familiar you are with CE, but you can open the CE table, get the pointer, go the memory view and analyse the Data Structure, and you can find other things related with your character there. Mana/Life/ES/Mov.speed/Etc

    https://i.imgur.com/iGd4asf.png img tutorial
    Last edited by coyes; 12-13-2024 at 11:31 PM. Reason: mspaint god =)

  20. #15
    Enuma's Avatar Member
    Reputation
    9
    Join Date
    Sep 2008
    Posts
    137
    Thanks G/R
    4/5
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Maybe im asking for a lot here, im a bit noobish to make script correctly.
    Ive found following info on one of the CE/Scripting forums, all thanks go to strixxr, original poster.

    Would anyone be kind enough to look into or make a CE script for zoom hack?

    Code:
    Infinite Zoom
     
    F3 0F 5D 0D ? ? ? 02 F3 0F 11 8F
     
    NOP 8 bytes with: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90

Page 1 of 5 12345 LastLast

Similar Threads

  1. [Buying] I want to buy a software that can be used in the multiplayer robot hall, and I want
    By xiaolang947185 in forum Call of Duty Buy Sell Trade
    Replies: 0
    Last Post: 01-18-2021, 07:05 AM
  2. experience to be used in bgs?
    By omg123 in forum WoW PvP & Battlegrounds
    Replies: 2
    Last Post: 11-12-2008, 02:00 AM
  3. Fun dueling exploit (can only be used in shattrath)
    By gibberish in forum World of Warcraft Exploits
    Replies: 6
    Last Post: 01-16-2008, 10:16 PM
  4. Guide to be cool in WoW
    By Datonking in forum World of Warcraft Guides
    Replies: 4
    Last Post: 10-03-2006, 05:27 PM
All times are GMT -5. The time now is 02:58 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.
Digital Point modules: Sphinx-based search