return 来自 python 中 ReadProcessMemory 的浮点值
return a float value from ReadProcessMemory in python
我在名为 Assault Cube 的游戏中有一个包含 y 位置的地址(我正在学习逆向工程)
我的问题是 readprocessmemory 的 ReadBuffer.value returns 是一个整数,我正在寻找一种方法来接收浮点值。有谁知道如何在 python 中执行此操作?
在图片中我试图说明如何返回整数 (1125777408),这本身是正确的,但我想找到一种方法来返回浮点值 (104)。
def ReadProcessMemory(self, hProcess, lpBaseAddress):
try:
lpBaseAddress = lpBaseAddress
ReadBuffer = ctypes.c_uint()
lpBuffer = ctypes.byref(ReadBuffer)
nSize = ctypes.sizeof(ReadBuffer)
lpNumberOfBytesRead = ctypes.c_ulong(0)
ctypes.windll.kernel32.ReadProcessMemory(
hProcess,
lpBaseAddress,
lpBuffer,
nSize,
lpNumberOfBytesRead
)
return ReadBuffer.value
except (BufferError, ValueError, TypeError):
self.CloseHandle(hProcess)
e = 'Handle Closed, Error', hProcess, self.GetLastError()
return e
有一个名为 c_float
的 ctypes
方法,所以使用 ctypes.c_float()
而不是 ctypes.c_int()
。
我在名为 Assault Cube 的游戏中有一个包含 y 位置的地址(我正在学习逆向工程)
我的问题是 readprocessmemory 的 ReadBuffer.value returns 是一个整数,我正在寻找一种方法来接收浮点值。有谁知道如何在 python 中执行此操作?
在图片中我试图说明如何返回整数 (1125777408),这本身是正确的,但我想找到一种方法来返回浮点值 (104)。
def ReadProcessMemory(self, hProcess, lpBaseAddress):
try:
lpBaseAddress = lpBaseAddress
ReadBuffer = ctypes.c_uint()
lpBuffer = ctypes.byref(ReadBuffer)
nSize = ctypes.sizeof(ReadBuffer)
lpNumberOfBytesRead = ctypes.c_ulong(0)
ctypes.windll.kernel32.ReadProcessMemory(
hProcess,
lpBaseAddress,
lpBuffer,
nSize,
lpNumberOfBytesRead
)
return ReadBuffer.value
except (BufferError, ValueError, TypeError):
self.CloseHandle(hProcess)
e = 'Handle Closed, Error', hProcess, self.GetLastError()
return e
有一个名为 c_float
的 ctypes
方法,所以使用 ctypes.c_float()
而不是 ctypes.c_int()
。