本教程将从以下几个方面对Python外挂制作做详细阐述:
一、准备工作
在制作Python外挂之前,需要进行一些准备工作:
1、安装Python开发环境
如果你还没有安装Python开发环境,请去官网下载安装,地址为:https://www.python.org/downloads/
2、安装第三方库PyAutoGUI
pip install pyautogui
PyAutoGUI库可以实现模拟鼠标和键盘操作,是Python编写自动化脚本的良好选择。
3、安装其他需要的第三方库
pip install pillow
Pillow库用于处理图片。
二、连接游戏进程
制作Python外挂第一步就是连接到游戏进程,常见的连接方式有两种:
1、通过内存地址连接
import win32api
import win32con
import win32gui
import ctypes
hwnd_title = {}
def get_all_hwnd(hwnd,mouse):
if (win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd)
and win32gui.IsWindowVisible(hwnd)):
hwnd_title[win32gui.GetWindowText(hwnd)] = hwnd
win32gui.EnumWindows(get_all_hwnd, 0) # 获取所有窗口句柄
hwnd = hwnd_title['窗口标题'] # 获取窗口句柄
PROCESS_ALL_ACCESS = (0x000F0000 | 0x00100000 | 0xFFF) # 修改权限
pHandle = win32api.OpenProcess(PROCESS_ALL_ACCESS, False, 6068) # 获取进程句柄
addr = 0x00876543 # 获取内存地址
ctypes.windll.kernel32.ReadProcessMemory(pHandle, addr, ctypes.byref(value), 4, None) # 读取内存的值
ctypes.windll.kernel32.WriteProcessMemory(pHandle, addr, ctypes.byref(value), 4, None) # 修改内存的值
2、通过窗口名称连接
import win32gui
import win32api
import win32con
hwnd_title = {}
def get_all_hwnd(hwnd,mouse):
if (win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd)
and win32gui.IsWindowVisible(hwnd)):
hwnd_title[win32gui.GetWindowText(hwnd)] = hwnd
win32gui.EnumWindows(get_all_hwnd, 0) # 获取所有窗口句柄
hwnd = hwnd_title['窗口标题'] # 获取窗口句柄
win32gui.SetForegroundWindow(hwnd) # 将窗口置为前台
win32api.keybd_event(116, 0, 0, 0) # 模拟按键操作,此处模拟F5刷新
win32api.keybd_event(116, 0, win32con.KEYEVENTF_KEYUP,0)
三、实现自动化操作
连接到游戏进程后,接下来就可以实现自动化操作了。
1、移动鼠标并点击
import pyautogui
import time
pyautogui.moveTo(100, 100, duration=0.25) # 移动鼠标到(100,100),持续0.25s
pyautogui.click() # 点击
2、键盘输入
import pyautogui
pyautogui.typewrite('hello world!', interval=0.25) # 输入字符串hello world!,每个字符间隔0.25s
3、截屏
import pyautogui
im = pyautogui.screenshot() # 截屏
im.save('screenshot.png') # 保存截屏图片
四、后续操作
在实现自动化操作之后,还可以进行其他的操作,如数据的处理和分析等。