Snipaste_2023-12-01_13-49-25.png# Python编写PvZ修改器

参考文章:

游戏太难通关?教你用CE和Python写一个属于自己的植物大战僵尸修改器

【Python】实现植物大战僵尸修改(二)

参考源码:(主要是看基址和偏移量)

pvztoolkit

学了这么久的编程,总得写些东西才是,偶然看到游戏修改器就心血来潮想自己也写一个

结果因为太久没用C感觉重新捡起来很吃力(最后还是看了两天C++的源码捡回来了,淦),打算用Python写一些简单的功能来练练手,结果查下来发现用Python写修改器的少之又少,而且计算用Python写植物大战僵尸的修改器,大部分也止步于修改阳光就结束了,也没说为什么不往下写,遂上手学之

基本原理搞懂之后就开始自己写,然后发现怪不得没人拿Python写修改器,相关的底层操作太少太局限了,写完之后也懒得换C语言再写一个了,练习的目的已经达到了,随便封装一下就准备下一个练手项目了

修改器(外挂),一种游戏辅助程序,可以协助玩家自动产生游戏动作,或是修改游戏内存数据、网络数据包等(分别对应按键模拟、内存挂、WPE封包),以实现玩家用少量的时间或金钱去完成升级过关等操作。

因为我没找到使用Python注入汇编码的操作(不排除我眼瞎),所以这个修改器用的只是最基础、简单的修改内存的方式来修改游戏数据

内存挂的步骤很简单:

  • 找到游戏数据内存地址、偏移量
  • 修改内存地址值,达到修改游戏内数据的目的
  • 用编程语言写一个程序,方便修改、使用

内存基址和偏移量

找到游戏的内存基址和偏移值是最耗时间的一步,因为进程每次启动分配的物理地址都是不一样的,所以要找到游戏的基址+偏移量来修改才可以达到复用的目的(不然每次启动都要重新找物理地址)偏移量可能有多个,比如PvZ中智慧树的树高的基址和偏移是:

+82c + 31*4 + 30

这一步通常用CE工具来进行查找,具体参考开头的文章,找到之后修改内存地址的值,游戏内的数据也就会跟着变化了,之后就可以用编程语言修改内存地址,通常用易语言和C++,再也不用Python写这种东西了

游戏也不过是一种程序,程序都是由数据和指令构成的,原理适用于所有游戏,只不过步骤和工具可能会有些不同

最后修改:2023 年 12 月 01 日
如果觉得我的文章对你有用,请随意赞赏