C1-见习工程师能力认证-01

目录

  • 任务一:用『0』和『1』绘图
    • 1.1.通过2进制『0』和『1』绘制喜欢的图案
      • -----呈现的效果图
    • 1.2.绘画出自己的昵称
    • 1.3.彩色像素
    • 1.4.计算机存储图片文件的底层原理
  • 任务二:掌握进制编辑器
    • 2.1.修改文本内容
      • 2.1.1建立一个记事本并在记事本里输入CSDN这句话。
      • 2.1.2将建立的txt文件在Hex Editor Neo中打开
    • 2.2利用Hex Editor Neo修改图片
      • 2.2.1截取8*8的全白PNG图片
      • 2.2.2在Hex Editor Neo中打开图片
  • 任务三:拓展任务-修改游戏存档:
    • 3.1.下载免安装的植物大战僵尸中文版
    • 3.2.修改游戏存档
      • 3.2.1.跳过关卡
      • 3.2.2.获取指定数量的金币--无限金币
      • 3.2.3.解锁『迷你游戏』选项
      • 3.2.4.解锁『生存模式』选项
  • 任务四:自测

任务一:用『0』和『1』绘图

1.1.通过2进制『0』和『1』绘制喜欢的图案

C1-见习工程师能力认证-01_第1张图片
Image width:9
Image height: 6
选择进制为:Binary

-----呈现的效果图

C1-见习工程师能力认证-01_第2张图片


1.2.绘画出自己的昵称

C1-见习工程师能力认证-01_第3张图片
Image width:20
Image height: 20
选择进制为:Binary


1.3.彩色像素

C1-见习工程师能力认证-01_第4张图片
Image width:7
Image height: 6
Bits per pixel: 3
选择进制为:Binary


1.4.计算机存储图片文件的底层原理

图像文件存储的都是每一个像素对应的颜色值。

1、图片文件有两种存储像素数据的格式。
对于一个16777216(真彩色)的图像,一个像素的颜色可以用24位数据表示。
256色的图像可以用调色板对颜色的信息进行编码,一个像素的值对应的是调色板的索引,而不是直接对应一个像素的颜色,调色板的索引映射为像素的颜色。
2、以一百万个像素,256种颜色的BMP文件在电脑上的存储为例。这个文件包括一个十四字节的文件首部,一个四十字节的信息首部,一个1024字节的颜色表,一兆字节的位图数据。文件首部的前两个字节由字符BM组成,还包括了文件长度和位图数据在文件中的起始位置。
3、文件的信息首部包含了图像的高、宽、颜色数等非图形数据。这个图像共有一百万个像素,一个像素需要八位的颜色信息,文件的这一部分的长度是一百万个字节,字节排放的顺序是自左到右从图像的最下面那行开始,这个文件的总大小是1001078字节。

作者:Alone
来源:知乎


任务二:掌握进制编辑器

2.1.修改文本内容

2.1.1建立一个记事本并在记事本里输入CSDN这句话。

C1-见习工程师能力认证-01_第5张图片

2.1.2将建立的txt文件在Hex Editor Neo中打开

C1-见习工程师能力认证-01_第6张图片
显示的是16进制的内容,对于二进制或者其他的进制的可以在编辑器内右击
C1-见习工程师能力认证-01_第7张图片
在这里我选择16进制
C1-见习工程师能力认证-01_第8张图片
在这里我将第一个C改为A,第三个D改为Z。
C1-见习工程师能力认证-01_第9张图片
C1-见习工程师能力认证-01_第10张图片

2.2利用Hex Editor Neo修改图片

2.2.1截取8*8的全白PNG图片

C1-见习工程师能力认证-01_第11张图片
由于8*8太小了难以显示,所以我在图片查看器中放大了300%。

2.2.2在Hex Editor Neo中打开图片

C1-见习工程师能力认证-01_第12张图片
这便是8*8的纯白PNG图片。

在最开始的8个字节表示文件格式的定义。C1-见习工程师能力认证-01_第13张图片
对于以上在我的另一篇博客里: link.

根据编码规则对十六进制进行改变,观察其变化:

对于这一位将ff更改为00.
C1-见习工程师能力认证-01_第14张图片
可见图片由白色变为了灰色。
C1-见习工程师能力认证-01_第15张图片


任务三:拓展任务-修改游戏存档:

  1. 用二进制编辑器修改《植物大战僵尸》的存档文件,能跳到指定关卡。
  2. 用二进制编辑器修改《植物大战僵尸》的存档文件,让游戏账户有指定数量的金币。
  3. 通过二进制编辑器修改存档文件,能解锁《植物大战僵尸》的[迷你游戏]选项。
  4. 通过二进制编辑器修改存档文件,能解锁《植物大战僵尸》的[生存模式]选项。

3.1.下载免安装的植物大战僵尸中文版

下载地址: 植物大战僵尸

提取码:4i37

3.2.修改游戏存档

3.2.1.跳过关卡

选择显示隐藏的项目,然后可以看到ProgramData文件夹,进入之后点击PopCap Games,打开里面的PlansVsZombies中的userdata
C1-见习工程师能力认证-01_第16张图片
在没有创建用户的时候,是以下效果
C1-见习工程师能力认证-01_第17张图片
在进入游戏后,创建用户名为:make
C1-见习工程师能力认证-01_第18张图片
在userdata文件中可以看到生成了user.dat和users.dat的俩个文件,这代表了我们新创建的用户——make。
C1-见习工程师能力认证-01_第19张图片
我们先试玩一下,在冒险模式里先玩一关。
C1-见习工程师能力认证-01_第20张图片
在试玩之后可以看到关卡变成了1-2.
C1-见习工程师能力认证-01_第21张图片
现在利用Hex Editor Neo打开user1.bat文件
C1-见习工程师能力认证-01_第22张图片
在这里可以看到00行04列现在是02,我猜测一下这里代表的是关口,因为这里是16进制,我先将此文件更改为10进制显示。

将00行04列更改为9. C1-见习工程师能力认证-01_第23张图片
然后将植物大战僵尸重新打开可以看见,关口由1-2成功的变成了1-9.

所以修改这里是成功的。
C1-见习工程师能力认证-01_第24张图片
因为植物大战僵尸每个大关卡有10个小关卡:

对于16进制来看:
01:转换为十进制是1,代表1-1关
02:转换为十进制是2,代表1-2关
09:转换为十进制是09,代表1-9关
1e:转换为十进制是30,代表3-10关

以此类推:可以计算对应关卡的二进制值,设定游戏跳到3-10关:
C1-见习工程师能力认证-01_第25张图片

在进入游戏后发现是跳关成功。
C1-见习工程师能力认证-01_第26张图片
注意:有一个问题,就是虽然跳关成功了但是你的植物并没有在图鉴出现
C1-见习工程师能力认证-01_第27张图片
但是并不影响你的游戏体验,在本关中所用到的植物会自动给予你。
C1-见习工程师能力认证-01_第28张图片

3.2.2.获取指定数量的金币–无限金币

同时可以看见我们的金币变为了620,这可以在后面和user1中进行数值对比。

(在游戏结束的时候奖励了200,所以金币变成了920)
C1-见习工程师能力认证-01_第29张图片
通过对比发现00行08列变成了5c,转化为10进制为92
可以猜想在游戏里是按1:10进行兑换的,意思就是92对应游戏里的920金币。

在这里我们更改5c为ff(就是十进制的92变成255)

再次进入游戏查看。
C1-见习工程师能力认证-01_第30张图片
可以看到金币变成了2550金币,这说明我们的更改是成功的。

现在我们开始实现无限金币,将这里更改为最大值。

在更改的时候我发现,在00行08列所允许的最大值为255.

那如何实现比这个还大的值呢。

我将关卡更改为1e我们继续上一关,因为上一关给的金币比较多一点。
C1-见习工程师能力认证-01_第31张图片
继续玩游戏。
C1-见习工程师能力认证-01_第32张图片
可以看到金币变成了3360,利用Hex Editor Neo再次打开user1.bat文件
C1-见习工程师能力认证-01_第33张图片
与上次做对比发现00行09列变成了01,我们知道08列是1:10,3360-500=2860.

猜想一下可能是09列是1:2860的金币汇率。

我们将08列改为0,09列为01试试看。
C1-见习工程师能力认证-01_第34张图片
可以看到金币在(08列为04)(09列为01)的情况下变成了2600.

说明我们的猜想不正确,09列的金币汇率为1:2560.

现在我们更改08列为ff,09列为ff,看一下是否达到了最大值金币。

C1-见习工程师能力认证-01_第35张图片
看这个情况应该还没有,猜测一下应该是在0a列进行变动,金币汇率会更高。

尝试更改0a列为ff.
C1-见习工程师能力认证-01_第36张图片
C1-见习工程师能力认证-01_第37张图片
可以看到金币变为了167,772,150 基本满足了我们对于无限金币的要求。

3.2.3.解锁『迷你游戏』选项

在没有对比的情况下我们只能一个个试了,将关卡选到最后一关。

在查阅资料可知,植物大战僵尸一共50关。50的十六进制为32

同时记录各数值,除了如下俩张表剩余全为00。
在这里插入图片描述
在这里插入图片描述
费了我20分钟终于通关了。
C1-见习工程师能力认证-01_第38张图片
在通关之后可以看见其他模式都可以使用了

C1-见习工程师能力认证-01_第39张图片
但是我们要清楚是哪儿里的数据改变了。

所以我们利用Hex Editor Neo再次打开user1.bat文件

在这里插入图片描述
可以看到在0c列变成了01,我们将0c列的01更改为00.

查看是否是这里的变化影响了解锁的程度。
在这里插入图片描述
C1-见习工程师能力认证-01_第40张图片
通过更改后可知,的确是0c这列影响解锁的程度。

3.2.4.解锁『生存模式』选项

0c这列解锁将00更改为01便可解锁

任务四:自测

  1. 110101010001转十六进制是d51.
  2. 101011.101011对应的十进制数是43.671875.
  3. 常见的音频编码格式有MP3/MP3 Pro格式,WMA格式,MPEG格式,AAC格式等.
  4. 常见的视频编码格式有H264 , VP8, AVS, RMVB等.
  5. 一个尺寸8×8大小的png全黑图片前四个字节的十六进制值是89 50 4e 47.
  6. 如果要提供一个实时的流媒体服务器,除了ffmpeg,还需要使用ffserver.

你可能感兴趣的:(C1-见习工程师能力认证-01)