Загрузка данных


import pymem
import pymem.process
import ctypes
import time

dwLocalPlayer = 0x1A29B8
dwEntityList = 0x1A2A78
m_iTeamNum = 0xF0
m_iHealth = 0x1F8
m_vecOrigin = 0x130

user32 = ctypes.windll.user32
gdi32 = ctypes.windll.gdi32

def draw_rect(hdc, x, y, w, h, color):
    brush = gdi32.CreateSolidBrush(color)
    gdi32.SelectObject(hdc, brush)
    gdi32.Rectangle(hdc, int(x), int(y), int(x+w), int(y+h))
    gdi32.DeleteObject(brush)

try:
    pm = pymem.Pymem("hl.exe")
except:
    print("hl.exe не найден")
    exit()

client = pymem.process.module_from_name(pm.process_handle, "hw.dll")
client_base = client.lpBaseOfDll

hwnd = user32.FindWindowW(None, "Counter-Strike")
rect = ctypes.wintypes.RECT()
user32.GetWindowRect(hwnd, ctypes.byref(rect))
screen_w = rect.right - rect.left
screen_h = rect.bottom - rect.top
hdc = user32.GetDC(hwnd)

print(f"Чит запущен. Client base: {hex(client_base)}")

while True:
    try:
        local_player = pm.read_int(client_base + dwLocalPlayer)
        if local_player == 0:
            time.sleep(0.05)
            continue
        
        local_team = pm.read_int(local_player + m_iTeamNum)
        
        for i in range(1, 33):
            entity = pm.read_int(client_base + dwEntityList + i * 4)
            if entity == 0:
                continue
            
            entity_team = pm.read_int(entity + m_iTeamNum)
            if entity_team == local_team:
                continue
            
            health = pm.read_int(entity + m_iHealth)
            if health <= 0:
                continue
            
            x = pm.read_float(entity + m_vecOrigin)
            y = pm.read_float(entity + m_vecOrigin + 4)
            z = pm.read_float(entity + m_vecOrigin + 8)
            
            # Рисуем красный квадрат над врагом (упрощённо, в центре экрана для теста)
            draw_rect(hdc, screen_w//2 - 20, screen_h//2 - 20, 40, 40, 0x0000FF)
            
            print(f"[{i}] Health: {health}", end="\r")
            
    except:
        pass
    
    time.sleep(0.03)