Ich versuche, meine Spieler Gesundheit zu lesen. Ich habe eine Rolle gespielt, bin aber auf ein Problem gestoßen. Ich bin in der Lage zu lesen, welche Art von Informationen ist an einer bestimmten Adresse, aber kann nicht lesen, was der tatsächliche Wert ist, zum Beispiel hier ist die Antwort, die ich erhalte.Python lesen Prozess Speicher mit Ctypes
<ctypes.c_char_Array_64 object at 0x0000000002EBF9C8>
ich für welche Informationen suchen in der c_char_Array_64 Objekt gehalten, haben aber keine Ahnung, wie ich es gehen würde.
Hier ist mein Code:
class User:
ctypes.wintypes.DWORD = "Entity"
ctypes.wintypes.c_int = "Team"
ctypes.wintypes.c_int = "Health"
ctypes.wintypes.c_int = "Player"
def getSelfInfo(self):
adr1 = clientdll + dw_LocalPlayer
adr2 = ctypes.create_string_buffer(64)
bytes_read = ctypes.c_size_t()
(rPM(PROCESS.handle, adr1, adr2, sys.getsizeof(ctypes.wintypes.DWORD), ctypes.byref(bytes_read)))
print adr2
t = User()
t.getSelfInfo()
Side-note: 'sys.getsizeof (ctypes.wintypes. DWORD) 'bringt Ihnen keinen nützlichen Wert; Es sagt Ihnen den (rohen) Overhead des Python-Interpreters, um die Python-Level-Klasse zu speichern. Wenn Sie die Größe eines C 'DWORD' wollen, wollen Sie' ctypes.sizeof (ctypes.wintypes.DWORD) '. Sie können auch nicht 'ctypes.wintypes.DWORD =" Entity "' und ähnliches, das ist nicht wie Sie eine Variable deklarieren (Sie überschreiben tatsächlich den 'DWORD' Typ). Ich nehme an, Ihr Ziel ist es, eine 'ctypes' Struktur zu erstellen; schau dir [die Dokumente an, wie du das machen sollst.] (https://docs.python.org/3/library/ctypes.html#structures-and-unions) – ShadowRanger