Oyuncularımın sağlığını okumaya çalışıyorum. Rol yaptım ama bir sorunla karşılaştım. Hangi tür bilgilerin belirli bir adreste olduğunu okuyabiliyorum, ancak gerçek değerin ne olduğunu okuyamıyorum, örneğin aldığım yanıt budur. Ben hangi bilgilerin arıyorumPython ktiplerle okuma belleğini okuma
<ctypes.c_char_Array_64 object at 0x0000000002EBF9C8>
c_char_Array_64 nesne düzenlenen ama bu konuda giderdim nasıl hiçbir fikrim yok edilir. docs itibaren
print(ar2.value)
: Bu değeri almak gerekir
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()
Yandan notu: 'sys.getsizeof (ctypes.wintypes. DWORD) size yararlı bir değer getirmiyor; Python yorumcusunun Python seviye sınıfını saklamak için size söylendiğini söylüyor. C 'DWORD' boyutunu istiyorsanız, 'ctypes.sizeof (ctypes.wintypes.DWORD) '. Ayrıca, "ctypes.wintypes.DWORD =" Varlık "ve benzerlerini yapamazsınız, bu bir değişken bildirme şekliniz değil (aslında DWORD türünün üzerine yazıyorsunuz). Hedefinizi bir 'ctypes' yapısını yapmayı düşünüyorum; [bunu nasıl yapacağınız için dokümanlar] 'a bakın. (https://docs.python.org/3/library/ctypes.html#structures-and-unions) – ShadowRanger