准备工具

  • 植物大战僵尸游戏
  • CE
  • 易语言IDE

思路解析

  • 对于2D方框绘制,首先要找到存放僵尸坐标的地址,那么如何找到存放僵尸坐标的地址呢,首先从一个游戏开发角度来说,一个人物或者事物的相关数据大多数会放到一块,也就是各个属性相关的地址是相邻的,由于一个游戏我们不知道坐标是以何为轴,也不知道从哪里起始和终止的,因此如果想要找到坐标地址,可以换种角度来找,那就是找到僵尸血量的地址,那么坐标应该就会在内存附近的位置,为什么要找血量,而不找其他的僵尸属性呢,因为我知道普通僵尸的起始血量为270,网上相关数据随便搜搜就可以找得到,直接从已知的信息下手,更能方便的解决问题。

找地址以及CT框架,易语言代码的编写

  1. CE附加进程
  2. 游戏内出现普通僵尸后在CE搜索270数值后,在游戏内在种植一棵豌豆射手攻击一次僵尸,已知豌豆攻击一次伤害20,所以下次在此搜索的数值为250,将该地址存到下方。
  3. 在下方地址出右键打开**浏览相关内存区域**,在内存区域右键, ** 显示类型 **处,更改为单浮点数,因为存放血量坐标这些数值在该游戏中是以浮点数形式存放的,最后上下查看,找出可能为坐标的数值。

可以让僵尸移动,观察该数值的变化,并确定该地址


4. 将该地址添加到地址表中,在表中的地址右键查看找出是什么改写了改地址,在让僵尸移动一下,会自动显示修改坐标数值的汇编指令,点击该指令,显示反汇编程序

5. 在工具处点击自动汇编模板处点击CT表框架代码,在点击代码注入,这个操作是写该地址的CT脚本。

6. 为该地址申请内存。

7. 文件里点击分配到当前的CT表,然后执行该脚本,观察反汇编程序框的变化。

这步操作其实可以理解为将坐标地址中指令的esi指向申请的内存的地址中去,然后执行下一个指令,准确来说是将esi赋给申请的内存地址

  1. 编写易语言代码,这里只展示该功能的主要代码。具体释义自行理解,这里不在解释,如想具体了解,可联系我。

  2. 保持脚本执行,然后在CT表中手动添加地址。然后让僵尸移动距离,观察该地址中的数值发生变化。
  3. 将该地址写入到代码中的基址1的位置。
  4. 运行易语言代码,即可看到2D方框绘制。

结束了,很简单的