说明
需求
修改《植物大战僵尸》的存档文件,将一个新玩家的关卡进度直接修改到5-1关(跳关),金钱直接修改到10000
知识
二进制、十六进制对于计算机的意义
掌握各种数据进制间的转换
掌握如何修改并保存二进制文件
必要软件
Hex Editor Neo
《植物大战僵尸1》
软件下载及相关说明
Hex Editor Neo:
下载链接:(官网):https://www.hhdsoftware.com/free-hex-editor
因为官网下载可能会出现特别慢的情况,可以在下载的时候使用迅雷,实现相对高速的下载。
植物大战僵尸:可以在逗游官网进行免费下载。不过同时得下载逗游游戏盒子。
原理
利用数据转换的原理进行修改存档,具体为通过使用“Hex Editor Neo”软件来打开关于存档的文件并记录相关数据,再打开游戏并且完成游戏中的一个关卡,退出游戏再次使用“Hex Editor Neo”软件查看存档文件,观察其中的变换规律。多次重复后得出一定规律。
通过利用之前所得出的规律来修改数据进行跳过关卡。
游戏内金币同理可以用跳过关卡的方法进行修改。
植物大战僵尸的存档数据都是存储在本地的可以直接修改,默认路径:C:ProgramData\PopCap Games\PlantsVsZombie\suserdata
游戏进去默认关卡为1 - 1(偷偷完了一把):
Window系统可以使用Hex editor neo 打开二进制文件。
每过一关观察数据文件的变化:
- 第一关:
- 第二关:
发现00000004
04
的数字分别为01和02,则大胆将其改为09后再次进入查看游戏:
发现关卡果然变了:
继续尝试修改成其他数据,多次试验后,发现关卡跟地址0004的十六进制数据对应关系为: - 关卡1-1,01
- 关卡1-10,0A
- 关卡2-1,0B
- 关卡2-10,14
依此类推 - 关卡5-1,29
- 关卡5-10,32
注: 当数值大于32,小于3D时,关卡显示6-1到6-10,超过3D时,显示“6- ”,应该是开发者没有设计相应关卡,超限了;如图:
任务一:将地址00000004
的数据改为29,关卡成功跳转到5-1;
同样的道理:可以修改商店中的金币。
用上边同样的方法可以发现00000008
是控制金币的数据的。
地址08能存储的金币最大值是2550
枚(ff的10倍),商店里有很多商品的价格都超过了2550
,所以应该是使用了多位地址存储金币数量;
经验证,地址08-0B
按照从字节低到高的顺序存储了金币数量;
修改地址08-0B
数据为E8 03 00 00
,经验证,游戏内金币数量已改为10000;
本文参考:https://blog.csdn.net/nevins35/article/details/114291676?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161793045616780262576903%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161793045616780262576903&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-114291676.pc_search_result_hbase_insert&utm_term=%E6%A4%8D%E7%89%A9%E5%A4%A7%E6%88%98%E5%83%B5%E5%B0%B8%E6%96%87%E4%BB%B6%E4%BF%AE%E6%94%B9