如何在python中将整数转换为ctypes.c\u byte

2024-03-28 21:03:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在python3.5中使用读写ProcessMemory formkernel32.dll。你知道吗

我让ReadProcessMemory像这样工作:

def ReadMemInt(adress):
    buffer = (ctypes.c_byte * 8)()
    bytesRead = ctypes.c_ulonglong(0)
    if ctypes.windll.kernel32.ReadProcessMemory(processHandle, adress, buffer, len(buffer), ctypes.byref(bytesRead)):
        return struct.unpack('Q', buffer)[0]
    else:
        return -1

现在我有点困在让WPM工作,因为我不知道如何将我的变量转换成字节。。。你知道吗

这是我迄今为止尝试过的:

def WiteMemInt(adress, Val):
    buffer = ctypes.c_byte(Val)
    bytesRead = ctypes.c_ulonglong(0)
    ctypes.windll.kernel32.WriteProcessMemory(processHandle, adress, buffer, 4, ctypes.byref(bytesRead))

我希望这个问题适合StackOverflow的水平!你知道吗


Tags: returndefbuffervalbytectypeswindllkernel32
1条回答
网友
1楼 · 发布于 2024-03-28 21:03:03

成功了:

    def WriteMem(self, adress, Val, type):
        buffer = (ctypes.c_byte * self.GetSize(type))(*struct.pack(type, Val))
        bytesRead = ctypes.c_ulonglong(0)
        if ctypes.windll.kernel32.WriteProcessMemory(self.processHandle, adress, buffer, len(buffer), ctypes.byref(bytesRead)):
            return True
        else:
            return False

相关问题 更多 >