天天看點

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)