从python中的ReadProcessMemory返回一个float值

时间:2019-01-01 20:10:13

标签: python winapi reverse-engineering

我在名为Assault Cube的游戏中有一个包含y位置的地址(我正在学习逆向工程)

我的问题是readprocessmemory的ReadBuffer.value返回一个整数,我正在寻找一种以浮点数形式接收值的方法。有谁知道如何在python中做到这一点?

在图片中,我试图说明如何返回整数(1125777408),该整数本身是正确的,但是我想找到一种方法来返回浮点值(104)。

enter image description here

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

1 个答案:

答案 0 :(得分:1)

有一种名为data的{​​{1}}方法,因此请使用ctypes而不是c_float