|

楼主 |
发表于 2024-7-5 13:59:19
|
显示全部楼层
- import win32process
- import win32gui
- import win32api
- class GetProcess(object):
- def __init__(self,windowshandle) -> None:
- self.windowshandle=windowshandle
- def GetGameProcess(self):
- wh=win32gui.FindWindow(None,self.windowshandle)
- #win32gui通过Findwindow查找进程标题获取窗口句柄
- ThreadID=win32process.GetWindowThreadProcessId(wh)[1]
- #通过win32processGetWindowsThreadProcessID获取线程和进程ID
- self.process=win32api.OpenProcess(0x1f0fff,False,ThreadID)
- #通过win32apiOpenProcess获取窗口句柄
- def GetGameMoudle(self,module):
- iter=win32process.EnumProcessModules(self.process)
- #枚举进程所有模块
- for i in iter:
- p=win32process.GetModuleFileNameEx(self.process, i)
- #通过枚举进程的模块获得模块所在Windows上的位置
- if p[p.rfind('\\')+1:] == module:
- self.i=i
- def ReadMemory(self,GameAddress_Offset,Game_Type):
- address=self.i
- for offset in GameAddress_Offset:
- address=self.ReadMemory_(address+offset,Game_Type)
- return address
- def ReadMemory_(self,GameAddress,Type):
- ad=win32process.ReadProcessMemory(self.process,GameAddress,Type)
- return int.from_bytes(ad,'little')
- def WriteMemory(self,R_GameAddres,Last_Offset,HackGame,Type,):
- win32process.WriteProcessMemory(self.process,R_GameAddres+Last_Offset,int(HackGame).to_bytes(Type,'little'))
复制代码 |
|