最近比较怀旧,在玩一个比较老的PC游戏。由于游戏难度太高了,于是就打算自己写一个修改器。

通过查阅资料,在 Windows 下的修改器主要需要用到四个函数:OpenProcess, CloseHandle, WriteProcessMemory, ReadProcessMemory。

这几个都是C++的函数,在Python中可以通过ctypes来直接调用。

然后接下来介绍一下基本的操作流程。

1.通过 任务管理器 或者其他方式得到需要修改的游戏进程。然后通过 OpenProcess 注入该进程。

PROCESS_QUERY_INFORMATION=0x0400PROCESS_VM_OPERATION=0x0008PROCESS_VM_READ=0x0010PROCESS_VM_WRITE=0x0020hProcess= ctypes.windll.kernel32.OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,False, pid)

2.然后可以通过 ReadProcessMemory 来扫描游戏的内存找到需要修改的数值项的内存地址。

buf= ctypes.c_int32()nread= ctypes.c_size_t()ret= ctypes.windll.kernel32.ReadProcessMemory( hProcess, base_addr, ctypes.byref(buf), ctypes.sizeof(buf), ctypes.byref(nread))

这里是读取 base_addr 地址之后的4个字节的内容。可以通过循环来遍历游戏的内存,找到需要修改的地址。

当然,为了方便也可以直接使用 Cheat Engine 之类的软件来查找,然后把找到的内存地址记录下来即可。

3.得到需要修改的内存地址之后,就可以 WriteProcessMemory 来修改该地址保存的值。

buf= ctypes.c_int32(value)nread= ctypes.c_size_t()ret= ctypes.windll.kernel32.WriteProcessMemory( hProcess, base_addr, ctypes.byref(buf), ctypes.sizeof(buf), ctypes.byref(nwrite))

这里是往 base_addr 这个地址写入值为 value 的4字节内容。

4.最后如果不再需要修改了的话,就通过 CloseHandle 关闭该注入操作。

ctypes.windll.kernel32.CloseHandle(hProcess)

转载于:https://juejin.im/post/5beeb73351882548eb354e5a

使用python编写游戏修改器相关推荐

  1. python怎么制作游戏修改器_使用python编写游戏修改器

    最近比较怀旧,在玩一个比较老的PC游戏.由于游戏难度太高了,于是就打算自己写一个修改器. 通过查阅资料,在 Windows 下的修改器主要需要用到四个函数:OpenProcess, CloseHand ...

  2. python编写游戏修改器

    在 Windows 下的修改器主要需要用到四个函数:OpenProcess, CloseHandle, WriteProcessMemory, ReadProcessMemory. 这几个都是C++的 ...

  3. python怎么制作游戏修改器_Mancala (Python Edition)游戏修改器_九游手机游戏

    Mancala (Python Edition)游戏修改器游戏攻略 Mancala is an ancient family of board games. This version is known ...

  4. 利用cheat engine以及VC编写游戏修改器

    cheat engine的介绍已经完毕了,下面就是怎么使用它的问题,这里写一个稍微有意思一点的,也有实际用途的话题,就是来编写自己的游戏修改器. 这篇文章参考了http://www.pediy.com ...

  5. python制作游戏修改器_基于Python的游戏是如何制作的?

    让我们先把这个让开:the game should run even on a computer where there's no python installation. So my questio ...

  6. python怎么制作游戏修改器_如何使用CE来修改游戏并制作一个修改器

    1 首先下载CE,地址在参考资料里面.http://pan.baidu.com/s/1hqkrPcC打开后启动Cheat Engine.exe和练习软件Tutorial.exe 打开之前最好关闭杀毒软 ...

  7. 打造自己的游戏修改器和内存补丁

    相信很多人打游戏的时候都用修改器,这里我介绍怎样用VB编写修改器. 1.其实修改器原理很简单,一般来说,在游戏运行的时候我们对游戏内存空间中必要的数据进行修改就可以了.举个例子来说,一款拳皇模拟器里游 ...

  8. 为英雄无敌3写个游戏修改器

    我是比较铁杆的英雄无敌3的fans,在网上看到这样的文章:http://game.china.com/zh_cn/play/10002765/20021113/11362720.html 就是让我方英 ...

  9. 游戏修改器的基本工作原理

    所谓游戏修改器,主要是通过修改游戏程序的内存数据或存盘文件来修改游戏中的相关数据,使之达到"无敌"等效果. 游戏修改器主要分为两类:单一游戏的修改器和通用游戏修改器.顾名思义,前者 ...

最新文章

  1. 周志华:“深”为什么重要,以及还有什么深的网络
  2. 【转】文件恢复神器extundelete
  3. kafka环境安装及简单使用(单机版)
  4. 周五话分析 | 两个指标解读用户千百种离开的姿势(跳出率与退出率)
  5. Apache中限制和允许特定IP访问
  6. 用 Python 分析上网记录,发现了很多不可思议的事
  7. python suds 调用webservice 缓存
  8. Selenium 2自动化测试实战5(模块调用)
  9. 南开100题c语言计算机二级,3月计算机二级C语言题库南开100题.pdf
  10. android 7 zip压缩文件,7-zip怎么把大文件压缩到最小
  11. gif一键抠图 在线_8个免费在线抠图网站 不会PS的小白也能一键抠出专业效果图...
  12. 【Unity实战100例】Unity制作脑图编辑工具(全网第一首发)
  13. 可能是最通俗的Lempel-Ziv-Welch (LZW)无损压缩算法详述
  14. 继续BT的研究-第二部份关于BT中的tracker
  15. 【编程笔试】美团2021校招笔试-通用编程题第9场(附思路及C++代码)
  16. 【Unity 22】 Unity 力,扭矩,刚体,触发器的简单使用
  17. 网络空间搜索FOFA
  18. 计算机体系结构——动态流水线动态调度详解
  19. 数据库三大范式定义与理解
  20. webpack4 搭建 Vue 开发环境笔记

热门文章

  1. MySQL备份和恢复具体实施
  2. 剑网3 最新服务器,《剑网3缘起》突然延期,疑似人气低迷撑不满服务器
  3. VIT: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale(arXiv 2021)
  4. 四叶草python_python turtle工具绘制四叶草的实例分享
  5. websocket创建失败_WebSocket sendSocketMessage 发送失败,onSocketMessage接收不到数据
  6. Web|设置隔行变色的单元格
  7. ubuntu 14 LAMP
  8. 《看板和Scrum——相得益彰》读书笔记(四)
  9. ArrayList集合和数组的区别
  10. 浏览器:跨域及解决方法