слушай вот я нашел все сдампил но нихуя не находит , может я далбаеб? можешь чекнуть пожалуйста? import pymem
import pymem.process
import time
pm = pymem.Pymem("dota2.exe")
client = pymem.process.module_from_name(pm.process_handle, "client.dll")
base = client.lpBaseOfDll
OFF_ENT_LIST = 0x5824C60
OFF_LOCAL = 0x5734D28
OFF_HP = 0x32C
def safe_read_ptr(addr):
try:
val = pm.read_longlong(addr)
return val if 0x100000 < val < 0x7FFFFFFFFFFF else 0
except:
return 0
def find_working_chain():
ent_base = safe_read_ptr(base + OFF_ENT_LIST)
loc_base = safe_read_ptr(base + OFF_LOCAL)
print(f" dwEntityList -> {hex(ent_base)}")
print(f" dwLocalPlayer -> {hex(loc_base)}")
if ent_base:
arr = safe_read_ptr(ent_base + 0x10)
if arr:
ident = safe_read_ptr(arr)
if ident:
ent = safe_read_ptr(ident + 0x10)
if ent:
hp = pm.read_int(ent + OFF_HP)
if 0 < hp < 10000:
print(f"{hex(ent)}, HP: {hp}")
return ent
if loc_base:
if 0 < hp < 10000:
print(f"HP: {hp}")
return loc_base
if ent_base:
arr = safe_read_ptr(ent_base + 0x10)
if arr:
max_hp, best_ent = 0, 0
for i in range(500):
ident = safe_read_ptr(arr + i * 8)
if not ident: continue
ent = safe_read_ptr(ident + 0x10)
if not ent: continue
hp = pm.read_int(ent + OFF_HP)
if hp > max_hp and hp < 10000:
max_hp, best_ent = hp, ent
if best_ent:
print(f" {hex(best_ent)}, HP: {max_hp}")
return best_ent
return 0
def main():
my_hero = find_working_chain()
if not my_hero:
return
while True:
try:
hp = pm.read_int(my_hero + OFF_HP)
print(f" {hp} ", end="", flush=True)
if hp <= 0:
time.sleep(2)
my_hero = find_working_chain()
if not my_hero: break
except:
pass
time.sleep(0.1)
if __name__ == "__main__":
main()