一. 任务/目的:
- 通过修改十六进制控制关卡的地址上的数据,进行修改植物大战僵尸游戏的关卡——(例如. 关卡:8—8)
- 通过修改十六进制控制金币的地址上的数据,进行修改植物大战僵尸游戏的金币数量——(例如. 金币:10000金币)
二.配置游戏环境
- 植物大战僵尸2010年度版
提取码:82e0
找到用户数据的位置,植物大战僵尸用户文件一般为:C:ProgramDataPopCap GamesPlantsVsZombiesuserdata
四. 任务实现
1. 创建账户
打开植物大战僵尸游戏进行账 的创建(创建两个账 ),使用户数据中文件夹产生用户数据(user1、user2)
2. 任务1:修改进度(关卡)
先用user1玩植物大战僵尸,用Hex editor打开user1.dat,玩到第1-9关,可以看到user1.dat的第一行第04列中数据随着关卡一直从01 02 03 04…09变动,由此可猜测该列数据记录关卡进度。然后用user2的数据文档user2.dat中的04列的数据进行测试,猜测得以证实。

现在实现任务1的目标,修改关卡/进度为8-8。
因为用户数据库的所有数据均为十六进制,现将十六进制数据转换成十进制数据。
十六进制数据 | 关卡/进度 | 十进制数据 |
08 | 1-8 | 8 |
26 | 4-8 | 38 |
3A | 6-8 | 58 |
解析说明:
通过十六进制数据—关卡/进度—十进制数据进行分析可以得出:在十进制中,大关卡(“-”前)通过十进制数据的十位数字进行加1而来 (十位数字+1),关卡(“-”后)是十进制的个位数字。
由0a为1-10关,到0b为2-1关,可得出每个大关卡共有10个小关卡。为此8-8关有78个小关卡,即.8-8关十进制数据为78,将其转化为十六机制数据为4E。
如下表:
关卡 | 十进制数据 | 十六进制数据 |
---|---|---|
8-8 | 78 | 4E |
3. 任务2:修改金币数量
通过第一行数据修改的测试,可以发现第一行的{08 09 0a 0b}四列控制金币的数量。规则:把选择要设置的金币数量除以10,然后除完之后的数据换成十六进制,并将它们倒过来写。例如:1000000/10=100000 转换成十六进制为000186A0于是08 09 0a 0b列输入A0 86 01 00。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!