版权归作者所有,转载请注明出处
import win32process #进程模块
import win32con #系统定义的数据
import win32api #调用系统模块
import ctypes #C语言类型
import win32gui #界面
PROCESS_ALL_ACESSS=(0x000F0000|0x00100000|0xFFF) #位运算,ox代表16进制;此为一个常量,标识最高权限打开一个进程
window=win32gui.FindWindow("类名",“窗体”)
hid,pid=win32process.GetWindowThreadProcessId(window)#根据窗体抓取进程编号
phand=win32api.OpenProcess(PROCESS_ALL_ACESSS,False,pid)#用最高权限打开进程编号
data=ctypes.c_long()#C语言的整数类型,读取数据
mydll=ctypes.windll.LoadLibrary("C:\\Windows\\System32\\kernal.dll")
#加载内核模块
mydll.ReadProcessMemory(int(phand),内存地址,ctypes.byref(data),4,None)
#读取内存:int(phand)打开的进程编号;内存地址;写入结果cyref(data);整数4个字节
newdata=ctypes.c_long(xxx) #设定修改数据为XXX
mydll.WriteProcessMemoryint(phand),内存地址,ctypes.byref(newdata),4,None
#修改内存