任务目标一

  1. 修改《植物大战僵尸》的存档文件,能跳到指定关卡
  2. 修改《植物大战僵尸》的存档文件,让游戏账户有指定数量的金币
  3. 修改《植物大战僵尸》的存档文件,能解锁【迷你游戏】选项
  4. 修改《植物大战僵尸》的存档文件,能解锁【生存模式】选项

存档文件的修改要求

0x00 准备

  1. 安装《植物大战僵尸》单机版游戏,并定位存档文件的位置
  2. 安装Hex编辑器,以便对游戏的存档文件进行修改,我们这里是使用的是Free Hex Editor Neo 6.54

0x01 找到存档文件

下载游戏后,解压缩在指定的目录,游戏文件如下图:

先运行游戏,玩上几关,退出游戏。  再来看看游戏安装目录内,并没有任何的变化,因此断定存档文件应该存储在别处 ,根据经验决定在C盘根目录下搜索游戏的名称来看看有没有相关的文件夹或文件

根据游戏的运行文件选择的搜索关键字

果然在C盘根目录下有隐藏文件夹ProgramData下存在PopCap Games/PlantsVsZombies/userdata文件夹,应该就是游戏的一些数据文件了~ (当然我的系统是Win10,其它版本的系统我没有测试,或许位置可能不同)

打开文件夹,基本可以断定应该是存储用户文件的目录,存档文件应该就是users.dat或者user1.dat

0x02 分析存档文件

运行游戏后,我当前的游戏关卡如下图:

一局以后,关卡变成了下图:

这个时候我们再会过来看看两个文件:

users.dat没有任何变化

user1.dat已经被修改,如下图:

基本可以判断0x04位置应该就是表示关卡的数值

那么我们就来随便修改一下,看看怎么变化,极端一下,直接改成0xFF:

运行游戏后居然是这个结果,这个是为什么呢,为什么呢,为什么呢,百思不得其解!!

于是我打算玩一局这个关卡看看是个什么情况,过关以后又会发生些什么!

但是,负责任的告诉大家,过关以后啥都没有发生,继续提示进入下一关,然后关卡名称依然是【6-】,游戏内容仍然和上一关相同。

无奈,我觉得继续修改一下数值测试测试。

1a对应关卡[3-6]

0f对应关卡[2-5]

给大家总结一下这个结果,

03------>关卡1的第3关

04------>关卡1的第4关

0f-------->关卡2的第5关

1a-------->关卡3的第6关

因此虽然我不知道一大关又多少小关,但是根据0f或者是1a的位置,我们可以判断

第2大关的第1小关的数值应该是倒推4个数

值:0f,0e,0d,0c,0b

关卡:5,4,3,2,1

猜测一下第2大关的第1小关应该是0b,因此第1大关的最后1关应该是0a,那么就来验证一下吧

正如我的猜测,游戏的关卡确实为1大关10小关,这样一来我们就可以总结出一下的关系

第一关   01-----0a

第二关   0b-----14

第三关   15-----1e

第四关   1f-----28

第五关   29-----32

第六关   33-----3c

第七关   3d-----46

………………

但是根据实际的测试,数值超过33以后游戏进入第6关,但是游戏内容一直重复,不再变化,

数值超过3c以后关卡就显示为一下【6-】,并不会显示第7关,第8关等,且游戏内容一直重复。

因此,决定将游戏调整到第五关的最后一关看看过关以后会是个什么情况,是进入第六关呢,还是其它什么情况

而且进入的第六关是否如前面的各关卡一样,有着不同内容的每一小关,因为直接调数值进入的第六关的游戏内容是完全重复的。

根据上面的总结,查表可得,第五关的最后一关的数值应该是【32】

游戏画面确实进入了第五大关的第10小关,,如图:

通过了第5大关的第10小关,并没有进入第6大关,而是通关了冒险模式,并开启了其它的几种模式

好吧,那就再去看看存档文件的变化

请注意各数值的变化,地址0x04处的数值变成了01,也就是回到了第1大关第1小关,而0x08---0x09的数值,正好与商店里的金币的数值

0x0131=0b0000 0001 0000 0011 0001=0d305

金币的数值=数值*10

地址0x0c处的值变成了01,应该是开启了另外三个游戏模式。通过将该数值改为00,验证了此猜测

三个模式又都被锁定~ok整存档文件的分析到此告一段落。

任务目标二

宽和高决定了图像的数据的行数和列数,每一个点的颜色对应一位。

拓展任务

BMP图像数据格式详解

研究了BMP和PNG文件格式的相关内容,相对BMP文件比较好编辑处理,而PNG文件格式还需要进行编码的转换,因此选用了BMP来进行处理。

⾃测

110101010001转⼗六进制是多少?有什么最快的计算⽅法能得到结果?

解:1101 0101 0001=0xd51

对应8 4 2 1的原则,将110101010001 分成 4位一组,得出1101=8+4+0+1=13=0xd;0101=0+4+0+1=5=0x5;0001=0+0+0+1=1=0x1

最终=0xd51

101011.101011对应的⼗进制数是多少?

解法:1)101011.101011=1*2^11+1*2^9+1*2^7+1*2^6+1*2^5+1*2^3+1*2^1+1*2^0=2048+512+128+64+32+8+2+1=2795

解法:2)101011.101011=0xaeb=a*16^2+e*16^1+b*16^0=2560+224+11=2795

常⻅的⾳频编码格式有哪些?

解:mp3,wma,flac,aac,ape,wave

常⻅的视频编码格式有哪些?

解:mp4,avi,mpg,mkv,mov,vob

⼀个尺⼨8×8⼤⼩的png全⿊图⽚前四个字节的⼗六进制值是什么?

解:89 50 4e 47

UTF8三字节的编码⽅式为:1110xxxx 10xxxxxx 10xxxxxx,汉字【中】的Unicode编码⼗六进制值是0x4e2d,Unicode编码

解:

按三字节编码转换到⼗六进制的UTF8编码的计算过程是什么?

解:

如果要提供⼀个实时的流媒体服务器,除了ffmpeg,还需要使⽤哪个组件?
解:

C1任务01《植物大战僵尸》的存档文件修改相关推荐

  1. C1任务01植物大战僵尸修改

    这里写目录标题 目录 挑战 说明 内容 一.任务实现工具: 游戏:植物大战僵尸中文版 十六进制编辑器:Hex Editor Neo 二.任务实现过程 1.修改关卡 2.修改金币数量 3.解锁所有模式 ...

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

    C1认证:修改<植物大战僵尸>的文件以及code.org绘图以及bmp画图 索引 C1认证:修改<植物大战僵尸>的文件以及code.org绘图以及bmp画图 前言 一.任务内容 ...

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

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

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

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

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

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

  6. C1认证:修改《植物大战僵尸》的文件

    任务内容 修改<植物⼤战僵⼫>的存档⽂件,将⼀个新⽤户的进度直接修改到 5-2 关,⾦钱(能量)直接修改到 10000 使用工具 游戏:植物大战僵尸 十六进制编辑器:Hex Editor ...

  7. 豪华曹操传2014 (数据以及存档文件修改)

    假期在家闲的无事,想起以前玩过曹操传这种战棋游戏,无意间发现有个论坛制作了最新的版本:<豪华曹操传2014>,故事跟之前的版本不太一样,数据以及存档都有了变化,所以以前的修改器都用不了了, ...

  8. vs c/c++ 用win32api写出植物大战僵尸的阳光值修改器

    一.工具如下: 1.植物大战僵尸1(直接下载逗游游戏盒可以直接下载,网上资源很乱) 2.vs2017(使用vs win32的接口) 3.cheat engine(附下载链接https://www.cr ...

  9. 游戏辅助制作核心--植物大战僵尸逆向之阳光修改(一)

    本文章使用的是植物大战僵尸中文版下载地址是:http://pan.baidu.com/s/1bpE2Y4n 如果使用其他版本可能跟图上的地址不一样 但是如果看明白了思路结果也是一样的. 一.思路 通过 ...

最新文章

  1. 最小环算法求解(Dijkstra算法+Floyd算法)
  2. 利用btrace在线监控java程序状态
  3. 肿瘤动物模型中需要注意的伦理问题
  4. 5如何让进行项目管理
  5. 1 MLP-Mixer: An all-MLP Architecture for Vision
  6. mysql5.7 mysql库下面的user表没有password字段无法修改密码
  7. Eclipse常用快捷键大全
  8. win10总是2分钟就自动睡眠怎么办 win10系统自动休眠bug怎么解决(转)
  9. mysql 表数据压缩_mysql表数据压缩
  10. centos7配置php-fpm,centos7 配置php-fpm
  11. FTP 530未登录
  12. Mybatis 缓存配置 ,如何禁用缓存与一些细节
  13. matlab输出神经网络权值,matlab神经网络能做什么
  14. C/C++中CRT表示什么意思?
  15. Unity功能——设备硬件绑定(通过设备SN码)
  16. 元胞自动机模拟森林火灾--matlab实现
  17. C++ + ubuntu 调用boost 的一个问题
  18. [LeetCode]题解(python):155-Min Stack
  19. 将 Amazon EC2 到 Amazon S3 的数据传输推向100Gbps线速
  20. 2021-2027全球及中国BIM对象软件行业研究及十四五规划分析报告

热门文章

  1. 设计模式之略见一斑(解释器模式Interpreter)
  2. 在线将pdf文件解密或者pdf转word
  3. 校园生活展示html素材,校园生活素材作文
  4. SAR图像的干涉相位 matlab_SAR和ISAR雷达的基础知识
  5. 反射可以使用lambda吗_中央空调可以使用清洗剂吗怎么使用
  6. 后台使用itextpdf 生成pdf,生成出来的中文在谷歌浏览器不显示文字
  7. 数学分析教程史济怀练习8.3
  8. sqlsever2019:SQL视图的创建与修改
  9. Real Web Project Management: Case Studies and Best Practices from the Trenches
  10. “adb”不是内部或外部命令,也不是可运行的程序或批处理文件(Win)与adb: command not found(Mac)——解决方案