植物大战僵尸:实现游戏内自动收集阳光
植物大战僵尸这款游戏可以说是很多90后的回忆了,基本上只要是90后或多或少的都接触过,而玩游戏与制作辅助是两个概念,今天我将给大家分享一些游戏辅助方面的制作技巧,之所以使用植物大战僵尸这款游戏是因为游戏简单容易分析,且不需要考虑驱动保护版权等相应的问题,这里我会把我的分析思路分享出来,来供大家参考。
1.首先我们找出阳光的动态地址,找到之后我们双击这个地址,将其加入到地址列表中,阳光的查找技巧相信你已经能够掌握了,这里就不再罗嗦了。
2.接着我们选择最下方的地址列表,然后按下【F6键】,也就是下一个硬件写入断点,然后回到游戏等待阳光出现并点击阳光,此时CE会出现以下代码,我们只需要记下【00430A11】这个内存地址,然后直接关闭CE吧,短期内用不到了。
3.打开OD,然后我们直接附加植物大战僵尸的游戏进程,点击【文件】然后点击【附加】选择植物大战僵尸进程就好。
4.附加完成后,我们的游戏会被OD暂停运行,此时我们直接按下【F12】让游戏正常的运行,默认情况下会停在系统领空,我们直接按下【Ctrl + G】输入【00401000】来到程序领空。
5.接着我们按下【Ctrl + G】输入【00430A11】跳转到刚才找到的代码位置,过去以后直接【F2】下一个断点
6.紧接着我们回到游戏,然后等待阳光的出现,当阳光出现后我们点击阳光,OD会自动断在00430A11的位置,其中ecx就是要增加的阳光数。
上图并没有CALL调用,应该是在外部,我们直接回朔到上一层【Ctrl+F9】执行到返回,【F8】直接出CALL.
7.我们在JNZ和CALL的两处位置下断点,然后运行程序,当我们点击阳光时会断在JNZ的位置,如果把JNZ用NOP填充的话,会发现当我们再次点击阳光的时候阳光会迅速的被回收没有了动画。
也就是说,JNZ如果成立的话则会有回收阳光的动画,当不成立的时候则会执行【call 004309d0】显然这就是回收阳光的关键CALL,但我们可猜测,再回收阳光的时候一定会判断是否回收,所以回收的判断应该在上一层。
8.首先我们回到游戏,等待出现阳光然后点击阳光,OD会断下,断下后我们取消这两处的断点,然后跟着OD单步【F8】向下走,直接出这个CALL,出CALL后会看到如下代码,我们直接下三个断点。
9.下好断点,回到游戏等待阳光下落我们回收,此时OD会断下,我们运行OD发现会一直被断在【0043158F】只要阳光没有收回就会一直断下,此处的跳转并没有实现,因为我们没有去点击阳光,这里可以得出如果点击了阳光JNZ则会跳转成立,否则不成立等待用户点击回收阳光。
10.我们取消所有的断点,然后尝试把JNZ跳转改成JMP无条件跳转,让其只要一出现阳光就自动的触发回收的CALL试试。
改完以后我们回到游戏,会发现只要阳光出现了会被立即回收,再配合第三课学习的内容,简直就是吸光狂魔啊。
相关文章
- 体验了一下火爆全球的 ChatGPT,我震惊了
- ggsankey绘制桑基图(2)
- R初学者必知图形添加显著性标记小细节
- [文献解读]基于肿瘤免疫微环境膀胱癌提高免疫治疗应答率的分类
- ggplot2绘制趋势变化堆砌条形图
- ggplot2优雅绘制时间趋势变化散点图
- [nmicrobiol图表复现] ggtree绘制离散型环状热图
- ggplot2优雅的绘制轨道图
- R语言优雅的绘制地图附带经纬线
- 跟着nature学绘图之特殊主题热图
- 全网最详细 二进制 k8s v1.25.x文档
- 跟着nature学绘图之绘制组合版环饼图
- 在Ubuntu中安装Samba文件服务
- R优雅的自定义绘制代谢通路图
- R语言优雅进行nls模型分析
- 搭建监控系统
- [R包推荐] polyclid优雅的绘制多边形
- 集统计分析数据可视化与一身的利器,这个R包轻松实现
- ChatGPT一个你必须体验的智能AI机器人
- 二进制安装k8s v1.25.4 IPv4/IPv6双栈