天天看点

Python零基础学习笔记(三十五)—— 内存修改

今天利用这个小功能做了个植物大战僵尸的外挂,哈哈哈

等以后学了GUI编程的时候做成图形化界面

#进程模块
import win32process
#系统
import win32api
import  win32con
import win32gui
import ctypes

#获取最高权限,\位运算
PROCESS_ALL_ACCESS = (0x000F000|0x00100000|0xFFF)

#找窗体
win = win32gui.FindWindow("MainWindow","植物大战僵尸中文版")
#根据窗体找到进程号
hid, pid = win32process.GetWindowThreadProcessId(win)
#以最高权限打开进程
p = win32api.OpenProcess(PROCESS_ALL_ACCESS, False, pid)

data = ctypes.c_long()  #c语言中的长整形

#加载内核模块
md = ctypes.windll.LoadLibrary("C:\\Windows\\System32\\kernel32")

#读取内存
md.ReadProcessMemory(int(p),0x12508678, ctypes.byref(data), 4, None)
print("data =", data)
#设置新值
newData = ctypes.c_long(1000)
#修改
md.WriteProcessMemory(int(p), 0x12508678, ctypes.byref(newData), 4, None)