如何解决我不能在 python 中执行 WriteProcessMemory,为什么?
我编写了一些基于 stackoverflow 代码的代码,只是为了读取内存并与单个值进行比较。当为真时,我需要将此值替换为 0 或其他值。但是我的 writeprocessmemory 不起作用,我不知道为什么。 结果的输出值为 1 - 这意味着它正在工作 但是 result2 的输出值为 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,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,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],None)
print('result: {},bytesRead: {}'.format(result2,bytesRead.value))
CloseHandle(processHandle)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。