C1认证:修改《植物大战僵尸》的文件以及code.org绘图以及bmp画图

C1认证:修改《植物大战僵尸》的文件以及code.org绘图以及bmp画图




前言

植物大战僵尸的用户数据文本编码以及code绘图和bmp编码都是使用了进制编译,植物大战僵尸跟bmp都是十六进制,而code绘图是二进制绘图


一、任务内容

(1)修改植物大战僵尸
首先,修改《植物大战僵尸》的存档文件,能跳到指定关卡,例如[5-1]
其次,修改《植物大战僵尸》的存档文件,让游戏账户有指定数量的金币
然后,修改《植物大战僵尸》的存档文件,能解锁[迷你游戏]选项
最后,修改《植物大战僵尸》的存档文件,能解锁[生存模式]选项
在这里插入图片描述
在这里插入图片描述
(2)在code.org上注册账号,通过进制0和1[画]出形状,再[画出自己的名字或昵称]
(3)通过编辑器在bmp格式下[画]出字母[C]
先通过搜索引擎了解bmp文件数据格式的特征
再用截图工具截一幅8×8大小全白的bmp图片
然后用进制编辑器观察图片文件数据的规律
重复上述步骤,摸清规律后,在白底上用黑色线条[画]出字母[C]


二、操作步骤

1.植物大战僵尸

首先先下载游戏,寻找游戏的方式有很多,比如通过国内单机游戏网站3DM或者游侠这种网站寻找,或者去百度上搜索,还可以去steam上面购买正版,我这里使用的是曾经放在百度云盘的游戏压缩包链接: 百度云盘链接提取码:a40q
然后就是寻找存储用户数据文件的位置了,可以直接通过文件管理器搜索的方式进行搜索,选择搜索PlantsVsZombies,就可以找到存储文件的文件夹,然后进入userdata,里面的user1.dat就是我们的目标文件了(如果没有use1文件说明你还没有打开植物大战僵尸生成一个用户)
(PS:一般默认位置在C:\ProgramData\PopCap Games\PlantsVsZombies)
接着就是通过16位编辑器打开dat文件,最开始一把没通关的用户数据是这样子的:在这里插入图片描述
然后我们可以通过网上寻找通关用户文件或者自己过关来获得对比文件,打开来后便得到:在这里插入图片描述
对比后可以发现第一行的第五组从01变成了29,而29从16进制转换成10进制是41,可知植物大战僵尸是每个场景都是10个小关,每个场景都是一个大关,所以跳转到5-1,需要通过41关,所以将第五组数据改为29就跳转到了5-1关
接着我们可以再打一把,因为此时商店已经解锁,所以打怪会概率掉落硬币,这时候我们捡起来会造成钱包数额从0开始变动,打完之后会发现,第一行的第九组变化了,而且只变化了个位数,说明转换成10进制后,还需要进行×10的操作才是钱包里的数额,通过三次尝试后会发现从第九组开始到十二组数据都是属于钱包数额范围,而且排列位数顺序是十个,千百,十万万,所以想要将钱包数额改为89250,首先先÷10,然后再转换为16进制,即22DD,再进行位数排序,所以输入进去的是DD 22
最后我们可以看到第十三组数据是01,而我们新建的用户则是00,此时我们新用户的小游戏关卡并未解锁,所以更改为01时,解锁了[迷你游戏]跟[生存模式]
(ps:仔细对比会发现,第二行到第五行的前四组是生存模式的关卡数据,第五行的最后四组到第十行是小游戏的关卡数据,中间隔了三行之后就是解密小游戏的关卡数据)在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.code绘图

首先先进入 code官网进行注册,然后进入课程学习,到达这个界面在这里插入图片描述

通过学习我们可以知道,0是黑色,1为白色,所以通过编写由0跟1组合的二进制代码可以为20*20的画板“画”上自己的昵称在这里插入图片描述
在这里插入图片描述
第一张图就比较容易看出其中的编码规律,第二张图改为单列排序就很难进行辨认了


3.bmp绘图

首先我们先获取三张bmp的图片,用十六位编辑器打开,来获取bmp的编码规律(因为图都比较小所以我将这些图全部放在了一张图上,方便观看)在这里插入图片描述
附上下面进制编码的清晰图全白

全白

半黑半百方块

方块

全黑

全黑

可以看出,bmp前三行加第四行的前六组都是bmp的必定格式,第七组才开始是bmp的内容
通过尝试我们会发现bmp是通过存储rgb进行编码的,也就是每三组为一个rgb像素块,而且排列顺序是b,g,r,以上就是bmp的编码方式,接下来就是画出c了
在这里插入图片描述

在这里插入图片描述

总结

以上就是任务一的全部操作过程,过程中比较难的地方在于通关用户数据的获取以及十进制转换为十六进制
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值