以植物大战僵尸为例:
用到的工具:spy2.7 用于读取窗口的文件句柄。Cheat Engine6.5这个工具用于读取内存地址
1 import win32process
2 import win32con
3 import win32api
4 import ctypes
5 import win32gui
6 import time
7
8 PROCESS_ALL_ACCESS=(0x000F0000|0x00100000|0xFFF)
9 window=win32gui.FindWindow("MainWindow","植物大战僵尸")
10 hid,pid=win32process.GetWindowThreadProcessId(window) #根据窗体抓取进程编号
11 phand=win32api.OpenProcess(PROCESS_ALL_ACCESS,False,pid)#用最高权限打开进程编号
12 date=ctypes.c_long()#C语言的整数类型,读取数据
13 mydll=ctypes.windll.LoadLibrary("C:\\Windows\\System32\\kernel32.dll")#加载内核模块
14
15 while True:
16 mydll.ReadProcessMemory(int(phand), 244866760, ctypes.byref(date), 4, None) # 读取内存,244866760是内存地址
17 print(date.value)
18 if date.value <300:
19 newdata = ctypes.c_long(500)
20 mydll.WriteProcessMemory(int(phand), 244866760, ctypes.byref(newdata), 4, None)
21 time.sleep(3)