1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 修改植物大战僵尸游戏存档相关知识

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

时间:2018-07-09 05:12:14

相关推荐

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

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

前言计算机二进制和十六进制对计算机的意义二/七/八/十/十二/十六等多种数据进制间的转换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。

通过这样的方法就可以进行金币的修改。通过进制的转换理论上就可以随意控制游戏存档。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。