修改植物大战僵尸游戏存档

  • 前言
    • 计算机二进制和十六进制对计算机的意义
    • 二/七/八/十/十二/十六等多种数据进制间的转换
      • 2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)
    • 如何在windows及linux中修改并保存⼆进制⽂件
      • 1、在linux下修改保存二进制文件:
      • 2、在windows下修改保存二进制文件:
  • 实现

前言

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

计算机二进制和十六进制对计算机的意义

在这个问题上,我认为首先需要知道计算机为什么采用二进制?
数据在计算机中以器件的物理状态表示,计算机处理所有的字符或符号也要用二进制编码表示。
因此,

1、二进制运算规则简单,有利于节省设备,具有两种稳定状态的元件(如晶体管的导通截止,继电器的接通断开,电脉冲的电平高低等)容易找到,而要找到具有10种稳定状态的元件对应十进制的10个数就很困难。

2、二进制中每个数据只有两种状态,比如,当电脉冲信号受影响时,也能分辨出状态高还是低,数据具备很强抗干扰性。

十六进制的意义:

1、对计算机理论,十六进制对计算机硬件电路的设计是很有益的。比如逻辑电路设计中,既要考虑功能的完备,还要考虑用尽可能少的硬件,十六进制就能起到一些理论分析的作用。比如四位二进制电路,最多就是十六种状态,也就是一种十六进制形式,只有这十六种状态都被用上了或者尽可能多的被用上,硬件资源才发挥了尽可能大的作用。

2、十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数。

二/七/八/十/十二/十六等多种数据进制间的转换

1.十进制转R进制
1.1 十进制转二进制

十进制整数转二进制

十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

例题: 135D = ______ B

**解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.
这里写图片描述

十进制小数转二进制

十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

具体做法是:

用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

例题: 0.68D = ______ B(精确到小数点后5位)

**解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.

十进制小数转二进制
1.2 十进制转八进制

思路和十进制转二进制一样,参考如下例题:

例题: 10.68D = ______ Q(精确到小数点后3位)

**解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.

十进制转八进制
1.3 十进制转十六进制

思路和十进制转二进制一样,参考如下例题:

例题: 25.68D = ______ H(精确到小数点后3位)

**解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.

这里写图片描述
十进制转十六进制

2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)

例题: 1001 0110B = ______ D

**解析:**如下图所示。得到结果:150D.

这里写图片描述
图5.二进制转十进制
2.2 八进制转十进制

八进制转十进制的方法和二进制转十进制一样。

例题: 26Q = ______ D

**解析:**如下图所示。得到结果:22D.

这里写图片描述
图6.八进制转十进制
2.3 十六进制转十进制

例题: 23daH = ______ D

**解析:**如下图所示。得到结果:9178D.

这里写图片描述
图7.十六进制转十进制
3.二进制转八进制

二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

例题: 1010 0100B = ____Q

**解析:**计算过程如下图所示。得到结果:244Q.

这里写图片描述
图8.二进制转八进制
4.二进制转十六进制

二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

例题: 1010 0100B = ____H

**解析:**计算过程如下图所示。得到结果:a4H.

二进制转十六进制
5.工欲善其事,必先利其器

下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:
1 1 1 1 1 1 1 1 B
128 64 32 16 8 4 2 1 D

注:B:二进制
D:十进制

例题: 135D = ______ B

**解析:**有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。
135D = 128D + 7D = 1000 0111B

如何在windows及linux中修改并保存⼆进制⽂件

1、在linux下修改保存二进制文件:

1)“Terminal”打开命令终端,为vi编辑做准备。
2)在终端切换到要编辑的二进制文件目录,然后输入“vi -b test.bin”,其中“test.bin”是我要编辑的二进制文件。当然也可以直接指定vi要打开编辑的文件路径。“-b”参数,就是告诉vi编辑器,我是在用二进制模式打开文件的。
3)打开文件之后,我们是很难看到文件实际内容的,因为是二进制的,文件不是可读的,因此也不能直接编辑和修改的。这时,我们可以使用命令“:%xxd”强制将其转化为可读的十六进制显示,就可以使用正常的vi命令对文件进行编辑了。
4)转化之后的文件内容以十六进制表示,左侧是文件偏移值。我们计划将文件编译00000010开始的4个十六进制字符“FFFFFFFF”修改一下。
5)使用正常的vi编辑器命令将十六进制字符“FFFFFFFF”修改为“88888888”,修改完成后,使用esc命令返回到vi的命令模式,然后使用命令“:%xxd -r”就可以将其重新转化为二进制模式了。

2、在windows下修改保存二进制文件:

1)我们仅需下载hex edit即可打开计算机中任何文件。

实现

1、进入游戏之后,创建新用户,用户名为“shenshu”,然后寻找游戏的存档文件位置C:\ProgramData\PopCap Games\PlantsVsZombies\userdata\user2.dat。
2、通过这个步骤就能找到具体的文件位置了
游戏用户的存档文件为:user2.dat,用Hex Editor Neo打开
3、想要修改存档来达到跳关目的,需要知道关卡数据存储在存档文件中的位置,所以,需要从关卡1-1玩到关卡1-3,每过一关,都将user2.dat文件备份,然后比较三份文件中的数据差异:
4、通过3次的查看,可以看到数据之间发生了变化。经比较,地址04的数据在每份存档中都不一样,
关卡1-1中,数据为“01”,
关卡1-2中,数据为“02”,
关卡1-3中,数据为“03”,
随着关卡的改变,发现可以进行修改地址04的数据,保存存档文件后,进入游戏看关卡是否已经改变;修改数据为“08”,进入游戏发现关卡发生了改变:
5、继续修改数据,多次进行后,发现关卡跟地址04的十六进制数据对应关系为:
关卡1-1,01
关卡1-10,0A
关卡2-1,0B
关卡2-10,14
依此类推
关卡5-1,29
关卡5-2,2A
关卡5-10,32
6、这里再开始进行金币的数据修改。经过同样的进行游戏并查看可以发现金币是由地址08—0b的数据来确定的,所以修改这个地址就可以实现改变游戏内的金币。
例如:在地址08下面数据改为01.
可以看到金币变为了10,而且经过测试发现一个地址08最多可以改变为16进制是(ff)能存储的金币最大值是2550枚(ff的10倍),因此游戏中最多金币总数为10200,但是如果08-0b都改为(ff)却会出现溢出成为-10,所以最多为10000金币,则修改08-0b的数据分别为e8 03 00 00 时金币为10000。
通过这样的方法就可以进行金币的修改。通过进制的转换理论上就可以随意控制游戏存档。

修改植物大战僵尸游戏存档相关知识相关推荐

  1. 修改植物大战僵尸游戏存档,二进制绘制字符或图形

    目录 修改植物大战僵尸游戏存档 安装游戏注册用户 找到用户的游戏存档二进制文件并修改 二进制绘制字符或图形 修改植物大战僵尸游戏存档 植物大战僵尸版本:植物大战僵尸2010年度版 操作系统:Windo ...

  2. cheat engin修改植物大战僵尸游戏

                 cheat engin修改植物大战僵尸游戏 修改阳光 思路:首先载入进程,如图黑圈勾画处 然后将初始阳光写入数值处并搜索,如下图 此时会出现许多地址,我们无法确定阳光的所在地 ...

  3. C1任务01-信息编码之修改植物大战僵尸数据存档

    任务要求: ⾸先,修改<植物⼤战僵⼫>的存档⽂件,能跳到指定关卡,例如「5-1」 其次,修改<植物⼤战僵⼫>的存档⽂件,让游戏账户有指定数量的⾦币 然后,修改<植物⼤战僵 ...

  4. 植物大战僵尸游戏道具或参数的属性-植物大战僵尸免费版提供下载

    植物大战僵尸中文版修改器是一款专用于修改植物大战僵尸游戏道具或参数的属性修改工具.使用植物大战僵尸中文版修改器你可以修改不同版本的植物大战僵尸游戏,还支持修改金钱.阳光.肥料(还有智慧树的肥料).杀虫 ...

  5. 修改植物大战僵尸的游戏数据

    修改植物大战僵尸的游戏数据 说明 1.掌握的知识 1.了解二进制.十六进制对于计算机的意义 2.掌握二/七/八十/十二/十六等多种数据进之间的转换 3.掌握如何在windows及linux中修改并保存 ...

  6. 植物大战僵尸用户存档修改(CSDN任务1,20210418)

    植物大战僵尸用户存档修改 任务目标 目标1:修改<植物⼤战僵⼫>的存档⽂件,能跳到指定关卡,例如「5-1」 目标2:修改<植物⼤战僵⼫>的存档⽂件,让游戏账户有指定数量的⾦币 ...

  7. ce逆向修改——植物大战僵尸针对“阳光值”

    ce逆向修改--植物大战僵尸 一.实验目的 为熟悉CE的使用和对软件逆向分析有进一步的了解. 二.实验设备 Cheat Engine 6.8.植物大战僵尸 三.实验内容 1.针对"阳光值&q ...

  8. CE实战:修改植物大战僵尸中阳光数值

    CE实战:修改植物大战僵尸中阳光数值 游戏版本:植物大战僵尸中文版( PlantsVsZombies ) Cheat Engine 版本:Cheat Engine 7.0 一.打开游戏 二.打开CE并 ...

  9. C1认证任务:修改植物大战僵尸中的关卡位置与金钱的数据

    文章目录 C1阶段的任务:修改植物大战僵尸中的关卡和金币数量 任务挑战 任务目的 任务内容 任务过程 1.下载植物大战僵尸 2. 植物大战僵尸创建游戏用户名 3.分析任务,寻找数据文件位置 4.查看数 ...

  10. ce修改植物大战僵尸阳光

    ce修改植物大战僵尸阳光 准备: CE修改器 植物大战僵尸游戏 易语言 选择进程,最重要的是找到阳光的基址 阳光数量为50 首次扫描和再次扫描 找到阳光的动态地址 找出是什么改写了这个地址,并双击 偏 ...

最新文章

  1. Parallel小记
  2. break和continue-continue代码演练
  3. livy提交任务报错com.cloudera.livy.shaded.kryo.kryo.KryoException: Unable to find class: GATest.ConJob
  4. One order里user status和system status的mapping逻辑
  5. 【Ubuntu-Tensorflow】InvalidArgumentError GPU不能使用的问题
  6. csp-s模拟测试42「世界线·时间机器·密码」
  7. 图解Java中的18 把锁!
  8. 吉比特java开发_JVM 吉比特后台 Java 开发实习生 20 分钟一轮游 _好机友
  9. linux运维、架构之路-HAProxy反向代理
  10. 在VS2010中使用Git管理源代码
  11. 如何检验java环境变量是否配好_如何验证Java环境变量配置成功
  12. android模拟器设置静态ip,安卓模拟器多开窗口挂手游切换不同IP防封号技术讲解...
  13. python 批量打印PDF(转)
  14. 上海应届毕业生起薪调查报告
  15. Linux学习系列 --awk命令学习
  16. Goland 导入自定义包问题解决
  17. 大数据时代你需要知道的7个大数据定义
  18. java中的递归算法_java递归实现
  19. 【15.罗马数字转整数】
  20. 互联网到底怎么连接的?一张图告诉你

热门文章

  1. Educational Codeforces Round 61 (Rated for Div. 2) D. Stressful Training 详解
  2. 孩子被人欺负了,要不要打回去?非常赞同这位宝妈的做法
  3. php file_get_contents 返回false,关于file_get_contents返回false解决办法
  4. 鲲鹏920是计算机CPU吗,鲲鹏920是电脑cpu吗
  5. PTA 7-4 最大公约数和最小公倍数
  6. 英语四级口语测试软件,讯飞大学英语四六级口语考试系统
  7. stm32花式点流水灯
  8. 变额年金(一、 递增年金)
  9. 电偶极子的MATLAB场模拟
  10. 关于执行gulp命令报这样的错误:gulp : 无法加载文件 C:\Users\dalv\AppData\Roaming\npm\gulp.ps1