Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Оффсеты

сдампи и посмотри
Пожалуйста, авторизуйтесь для просмотра ссылки.
слушай вот я нашел все сдампил но нихуя не находит , может я далбаеб? можешь чекнуть пожалуйста? 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()
 
слушай вот я нашел все сдампил но нихуя не находит , может я далбаеб? можешь чекнуть пожалуйста? 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()
открой программу ReClass и впиши туда адреса которые ты получаешь в своем питоне.и смотри в реклассе, что ты получаешь (или получаешь ли ты вообще что-то). можешь сюда накидать скринов что ты там видишь в реклассе со своих значений
 
открой программу ReClass и впиши туда адреса которые ты получаешь в своем питоне.и смотри в реклассе, что ты получаешь (или получаешь ли ты вообще что-то). можешь сюда накидать скринов что ты там видишь в реклассе со своих значений
оффсет здоровья M_IHealth всегда выдает ноль хотя нашел я правильно и у других людей тоже этот же оффсет я забиваю в чит енджене client.dll+0x32C и всегда ноль енити лист 33 всегда
при поиске в cheat энджен есть hex адреса которые меняются с 3600 на 0 и так по кругу прикол в том когда я начинаю поиск в программе он резко меняются на разные большие цифры вырубаю прогу они статичные и правильные
 
Последнее редактирование:
оффсет здоровья M_IHealth всегда выдает ноль хотя нашел я правильно и у других людей тоже этот же оффсет я забиваю в чит енджене client.dll+0x32C и всегда ноль енити лист 33 всегда

при поиске в cheat энджен есть hex адреса которые меняются с 3600 на 0 и так по кругу прикол в том когда я начинаю поиск в программе он резко меняются на разные большие цифры вырубаю прогу они статичные и правильные
Оффсет здоровья прибавляется к конкретной энтити, а не к client.dll. Ну просто подумай логически: оффсет это смещение от какого либо аддреса на N кол-во байтов. У класса сущности есть поле здоровья, которое находится от него на 32C байтов, не у каждой же сущности лежит разное здоровье на одной переменной client.dll + 32C. Да и оффсет там 34C, помойму...
 
Оффсет здоровья прибавляется к конкретной энтити, а не к client.dll. Ну просто подумай логически: оффсет это смещение от какого либо аддреса на N кол-во байтов. У класса сущности есть поле здоровья, которое находится от него на 32C байтов, не у каждой же сущности лежит разное здоровье на одной переменной client.dll + 32C. Да и оффсет там 34C, помойму...
Я щас прибавил к клиенту + 32C пишет 12945 хп но у пуджа всего 2 тараски и должно быть меньше я думаю
 
Я щас прибавил к клиенту + 32C пишет 12945 хп но у пуджа всего 2 тараски и должно быть меньше я думаю
зачем тебе к КЛИЕНТУ тебе надо локалплеер+34c все
0x5734D28 + 0x32C = хп
 
зачем тебе к КЛИЕНТУ тебе надо локалплеер+34c все
0x5734D28 + 0x32C = хп

Да я просто прибавил к клиенту 32с поделил на 2 получил хп так проще
Код:
Expand Collapse Copy
def calculate_hp(client, s):
    return (client + 32 * s) / 2

client_val = 100
s_val = 1

print(calculate_hp(client_val, s_val))
 
Да я просто прибавил к клиенту 32с поделил на 2 получил хп так проще
Код:
Expand Collapse Copy
def calculate_hp(client, s):
    return (client + 32 * s) / 2

client_val = 100
s_val = 1

print(calculate_hp(client_val, s_val))
Это не здоровье, а дичь какая то. Оффсет здоровья применяется конкретно к какой то энтити, и не к локалплееру тоже, локалплеер это владелец энтити, а не сама энтити.
 
Назад
Сверху Снизу