import ctypes
import struct

PROCESS_ALL_ACCESS = 0x1F0FFF
kernel32 = ctypes.windll.kernel32
hProc = kernel32.OpenProcess(PROCESS_ALL_ACCESS, False, 43084)

def rpm(addr, size):
    buf = (ctypes.c_char * size)()
    read = ctypes.c_size_t()
    if kernel32.ReadProcessMemory(hProc, ctypes.c_uint64(addr), buf, size, ctypes.byref(read)):
        return bytes(buf[:read.value])
    return b""

def rpm_u64(addr):
    b = rpm(addr, 8)
    return struct.unpack("<Q", b)[0] if len(b) == 8 else 0

def rpm_u32(addr):
    b = rpm(addr, 4)
    return struct.unpack("<I", b)[0] if len(b) == 4 else 0

area_instance = 0x2AFF1831800
print("=== AreaInstance +0x220 to +0x260 ===")
for off in range(0x220, 0x260, 4):
    u = rpm_u32(area_instance + off)
    p = rpm_u64(area_instance + off)
    print(f"+0x{off:03X}: u32={u:10d} (0x{u:08X}) | u64=0x{p:016X}")

kernel32.CloseHandle(hProc)
