win32process
win32con
win32gui
win32api
ctypes
import win32process
import win32con
import win32gui
import win32api
import ctypes
PROCESS_ALL_ACCESS = (0x000F000|0x00100000|0xFFF) # 逻辑或运算得到最大权限
win = win32gui.FindWindow("MainWindow", "植物大战僵尸中文版") # 找窗体
hid, pid = win32process.GetWindowThreadProcessId(Win) # 找到窗体在任务管理器中的进程号
p = win32api.OpenProcess(PROCESS_ALL_ACESS, False, pid) # 以最高权限打开进程
md = ctypes.windll.LoadLibrary("C:\\Windows\\System32\\kernel32") # 加载内核模块
data = ctypes.c_long()
# 使用工具查询某个值,得到该值在内存中的目标地址311944712
md.ReadProcessMemory(int(p), 311944712, ctypes.byref(data), 4, None) # 读取内存
print("data =", data)
newData = ctypes.c_long(10000) # 定义新的值
md.WriteProcessMemory(int(p), 311944712, ctypes.byref(newData), 4, None) # 修改内存