20182228 实验四《Python程序设计》实验报告
2021/6/30 22:25:34
本文主要是介绍20182228 实验四《Python程序设计》实验报告,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程:《Python程序设计》
班级: 201822
姓名: 李卓伦
学号:20182228
实验教师:王志强
实验日期:2020年6月30日
必修/选修: 公选课
1.实验内容
python综合实践——游戏(破解)
2. 实验过程及结果
(1)
利用import win32gui,获取找到这个窗口的进程,利用win32process.GetWindowThreadProcessId获取应用的进程id 利用win32api.OpenProcess读取内存(打开应用进程) 利用ctypes.windll.LoadLibrary保存数据的缓冲区,再利用Cheat Engine 7.0工具进行分析其阳光的地址所在,然后用ReadProcessMemory进行读进程的地址,最后用WriteProcessMemory修改想要的阳光的值,就可以实现游戏的破解
源文件
(1)植物大战僵尸的破解
import ctypes import win32gui import win32process import win32api window_handle=win32gui.FindWindow(None,'植物大战僵尸中文版') #找到这个窗口的进程 print(window_handle) process_id=win32process.GetWindowThreadProcessId(window_handle)[1] #找到进程id print(process_id) #进程句柄 process_handle=win32api.OpenProcess(0x1F0FFF,False,process_id) #读写内存 kernel32=ctypes.windll.LoadLibrary(r"C:\Windows\System32\kernel32.dll") #用来保存数据的缓冲区 data1=ctypes.c_long() kernel32.ReadProcessMemory(int(process_handle),0x006A9EC0,ctypes.byref(data1),4,None) print(data1.value) data2=ctypes.c_long() kernel32.ReadProcessMemory(int(process_handle),data1.value+0x768,ctypes.byref(data2),4,None) print(data2.value) data3=ctypes.c_long() kernel32.ReadProcessMemory(int(process_handle),data2.value+0x5560,ctypes.byref(data3),4,None) print(data3.value) sun=input() kernel32.WriteProcessMemory(int(process_handle),data2.value+0x5560,ctypes.byref(ctypes.c_long(int(sun))),4,None)
实验结果截图
这篇关于20182228 实验四《Python程序设计》实验报告的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程