挑战

有的玩家在玩游戏时,可能并不想⼀关⼀关地慢慢玩,⽽是希望可以直接跳到最后⼀关,或者从⾃⼰指定的关卡开始,⽐如
经典的《植物⼤战僵⼫》;再就是怎么能够「开挂」,得到更多的⾦钱、更⾼的属性、更强的道具,⽐如《三国志》系列。
任何游戏都会保存玩家的进度和数据,不管是单机游戏还是⽹络游戏都是如此。如果玩家能够知道这些存档数据保存在哪
⾥,并且还能随意修改存档信息,那是不是就能达到「开挂」的⽬的呢?

思路

通过游戏过关观察游戏存档数据文件的变化开找到变化的规律从而实现代码的反编译。

工具

1、window10 x64操作系统与Linux_Deepin 20


2、BlessHexEdit进制修改工具

3、植物大战僵尸单机版

一、什么是进制?

二进制是在计算机中使用最多的进制,八进制和十六进制都是基于二进制的,3位二进制数组成1位八进制数,4位二进制数组成1位十六进制数,所以二进制,八进制,十六进制互相转换很方便。

1十进制(Decimal):0-9 , 满10进1。
2二进制(Binary): 0、1 ,满2进1,以0b或0B开头。
3八进制(Octal): 0-7 , 满8进1, 以数字0开头表示。
4十六进制(Hex): 0-9及A-F,满16进1,以0x或0X开头表示。注意A-F不区分大小写。

二、任务探索

安装游戏并创建游戏角色,开始游戏通过第一关。寻找游戏的存档数据文件。进入游戏存档路径:C:\ProgramData\PopCap Games\PlantsVsZombies\userdata,新用户的存档文件为:user1.dat。

使用进制编辑工具打开查看内容。

查看完后备份文件。

接着玩一关游戏,需要用新的游戏存档数据文件去对吧备份的数据文件寻找有什么差异。

因为我们此时还没有获得金币,只是通过。因此我们可以猜测十六进制关卡的十六进制代码是02。

可以尝试修改地址03的数据为04,保存存档文件后来验证我们的猜想,进入游戏看关已经改变。验证了我们的猜想是正确的。

接着恢复游戏备份文件完游戏

关卡1-1,01
关卡1-10,0A
关卡2-1,0B
关卡2-10,14
依此类推
关卡4-1,29
关卡5-1,33
当数值大于32,小于3D时,关卡显示6-1到6-10,超过3D时,显示“6- ”,超出了游戏的限定。说明5-10已经是最后的关卡。

然后找存档修改游戏,目标修改给自己充值金币(如10000)的效果。 关卡超过了3-5,金币系统才会锁,但是此时金币数是0先通关4-1关卡,通关后获得了320金币,然后对比获得金币前后user01.dat文件中的数据变化,定位金币数量存储的地址,发现是地址第八列中的数据从00变到了20,金币数量是该数据十进制值的十倍;
0100金币数是10,01的十六进制是1所以是0100是01的十倍
0001金币数是2560
0003金币数是7680
0004金币是10240已经超了我们的目标
那么此时已经有可规律可循了,我们的目标是10000,所以可以倒推10000-7680=2320,还需要2320个金币。而代码的0100是十六进制01的十倍,所以我们只需要算出232的十六进制就是我们需要的代码了。

根据公式得到的结果是E8。

然后修改数据文件,验证我们的猜想。

游戏运行后验证了我们的猜想是对的,达成任务目标。

植物大战僵尸如何修改金币和关卡相关推荐

  1. 用Java实现植物大战僵尸的修改(续)

    用Java实现植物大战僵尸的修改(续) 之前已经使用HxD Hex Editor工具成功修改游戏存档, 具体步骤请参考:https://blog.csdn.net/weixin_50669669/ar ...

  2. [re入门]ce对植物大战僵尸的修改

    CE对植物大战僵尸的修改 1.对阳光的修改 思路:通过种植物来改变阳光的数值,ce中使用精确数值搜索即可,如下图 植物偏移地址的寻找(不需要每次都搜阳光地址,直接修改即可) 上面的地址点右键,什么访问 ...

  3. Qt植物大战僵尸实现修改阳光和无冷却

    Qt植物大战僵尸实现修改阳光和无冷却 网上关于qt修改植物大战僵尸的,尤其是开头获取进程句柄和窗口句柄,代码和博客方面会模糊一些,今天写个简洁易懂的,本人也是菜鸟刚学qt快两个月,有疑问在下面我一定回 ...

  4. 自己动手制作植物大战僵尸简单修改器(2)

    自己动手制作植物大战僵尸简单修改器2 地上物品自动拾取 地上物品自动拾取 上次的内容自己动手制作植物大战僵尸简单修改器 地上物品的地址是 0x006A9EC0 + 0x768 + 0xe4 + 0xd ...

  5. 自己动手制作植物大战僵尸简单修改器(3)

    自己动手制作植物大战僵尸简单修改器3 目的 过程 找到阳光地址 获取修改阳光的指令 找到自动汇编窗口 找到代码注入 改变阳光增量 结果 目的 这一篇并不是制作,改变每一次捡起阳光时阳光增加量. 过程 ...

  6. C1.1植物大战僵尸数据修改

    1.第一步,先下载植物大战僵尸.然后先注册.然后找到用户数据存放目录 我这里是C:\ProgramData\PopCap Games\PlantsVsZombies\userdata 下面的user1 ...

  7. 植物大战僵尸阳光修改之美

    0x00: 使用工具  Cheat Engine 5.6.1 将要修改游戏  PlantsVsZombies.exe - 植物大战僵尸 修改器开发环境  MingW and gcc 注: VC等IDE ...

  8. 植物大战僵尸中文版修改器python实现

    #阳光edx+5560 import win32gui import win32process import win32api,ctypes import tkinter as tk main=tk. ...

  9. 植物大战僵尸中文版修改器源码

    很简单一个辅助,关键是游戏数据的分析,实现了两个功能,无限阳光和无冷却.特别注意的一下,如果用VS2008编译的话,调试的时候是正常的,但编译后功能就会失效,这是因为OpenProcess权限的问题, ...

最新文章

  1. Android的自定义键盘颜色,android自定义键盘(解决弹出提示的字体颜色问题)
  2. DiskLruCache part 1
  3. 程序员苦逼了6年,选择在街边做鸭......
  4. Navicat工具导出mySQL数据库某个视图结构的.sql脚本
  5. Linux文件inode用完一例
  6. Linq学习比较第2篇
  7. Error:Failed to open zip file. Re-download dependencies and sync project
  8. linearlayout布局的属性 gravity layout_gravity layout_weight
  9. 解决Acunetix 12中文汉化的方法
  10. VBA 数据透视表的创建
  11. stm32中用到的实时系统_南京理工大学谢云云、谷志强等:光储系统如何在实时市场中获得更高的收益?...
  12. php date.getday,JavaScript从Date对象返回一周中的某一天 (0 ~ 6)的方法getDay()
  13. 李德毅 | 新一代人工智能如何从传统人工智能中脱颖而出
  14. 记录在使用类加载器的时候遇到的一个错误:java.lang.LinkageError
  15. MySQL DDL Duplicate entry '12' for key 'PRIMARY'
  16. Android无法打开相册查看视频
  17. Power BI 2021日历表DAX代码
  18. 今日剁手 | 这些值得买的给你准备好了,快囤起来
  19. 前庭电刺激(GVS)的数据分析及在神经康复中的应用
  20. 阿里云如何提交工单呼叫人工帮助技术支持的方法

热门文章

  1. 关于爱和幸福-最美的十首诗歌
  2. 对比车载定位模块与手机导航模块的差异
  3. 8种基本数据类型转换
  4. 淘宝/天猫,各大平台API操作(api接口)
  5. 本周的算法题(来自CF)
  6. 社会心理学(1) 社会心理学的定义
  7. python有什么用途视频_Python分析6625条视频,告诉你“打工人”凭什么能刷爆全网...
  8. 书读少别骗我,QQ等级也能贷款了?
  9. 微信8.0超炫视频背景,快保存!
  10. Singularity入门之持久化Overlay