我不能用python编写进程内存,为什么?

2024-05-20 14:10:05 发布

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

我在stackoverflow代码中编写了一些代码,只是为了读取内存并与单个值进行比较。如果为true,则需要将此值替换为0或其他值。但是我的writeprocessmemory不工作,我不知道为什么。 结果的输出值为1-这意味着它正在工作 但是result2的exputt值为0-表示这不起作用

import ctypes as c
from ctypes import wintypes as w
import winsound
import time

pid = 7740 
Ids_pointer = [0x016E3E60, 0x015E47E0, 0x013E4A90, 0x011E4AB8, 0x016E4AB0, 0x014E4B08, 0x012B40C0]
k32 = c.windll.kernel32
OpenProcess = k32.OpenProcess
OpenProcess.argtypes = [w.DWORD,w.BOOL,w.DWORD]
OpenProcess.restype = w.HANDLE

ReadProcessMemory = k32.ReadProcessMemory
ReadProcessMemory.argtypes = [w.HANDLE,w.LPCVOID,w.LPVOID,c.c_size_t,c.POINTER(c.c_size_t)]
ReadProcessMemory.restype = w.BOOL


WriteMemory = k32.WriteProcessMemory
WriteMemory.argtypes = [w.HANDLE,w.LPCVOID,w.LPVOID,c.c_size_t,c.POINTER(c.c_size_t)]
WriteMemory.restype = w.BOOL

GetLastError = k32.GetLastError
GetLastError.argtypes = None
GetLastError.restype = w.DWORD

CloseHandle = k32.CloseHandle
CloseHandle.argtypes = [w.HANDLE]
CloseHandle.restype = w.BOOL
e = GetLastError()


processHandle = OpenProcess(0x0010, False, pid)
processHandle2 = OpenProcess(0x0020, False, pid)


while 1:
    for q in range (0,7):
        data = c.c_ulong()
        bytesRead = c.c_ulonglong()
        result = ReadProcessMemory(processHandle, Ids_pointer[q], c.byref(data), c.sizeof(data), c.byref(bytesRead))
        cmd = data.value
        print(cmd)
        print('result: {}, err code: {}, bytesRead: {}'.format(result, e, bytesRead.value))

        if cmd == 1919902817:
            for i in range (0,7):
                result2 = WriteMemory(processHandle2, Ids_pointer[i], c.byref(data), c.sizeof(data), None)
                print('result: {}, err code: {}, bytesRead: {}'.format(result2, e, bytesRead.value))

CloseHandle(processHandle)

Tags: importdatasizeresultboolhandleopenprocessreadprocessmemory
1条回答
网友
1楼 · 发布于 2024-05-20 14:10:05

我解决了我的问题。我忘了在代码中添加“进程\虚拟机\操作”。我简单地添加到processHandle2并修复了代码

processHandle2=OpenProcess(0x0020 | 0x0008,假,pid)

相关问题 更多 >