植物大战僵尸目标:
- 修改游戏关卡
- 修改金钱
所需工具:
植物大战僵尸游戏
hex editor neo
进制转换教程:
1.十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
举例:以10进制173为例得到的二进制数为10101101
2.二进制转十进制
二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。如果首位是0就表示正整数,如果首位是1则表示负整数,正整数可以直接换算,负整数则需要先取反再换算。
举例:10101101
120+021+122+123+024+125+026+127=1+0+4+8+0+32+0+128=173
3.十进制转四进制
其原理基本和二进制相同,除二取余改为除4取月逆序排列,我们以十进制数173为例具体过程不再列出,得到四进制数2231
逆向同理从右往左依次乘以4的相应次方:140+341+242+243=1+12+32+128=173
4.八进制、十六进制亦是如此,就不再一一列举。 更改游戏关数:
1 .打开植物大战僵尸新建一个用户:例如1122
刚开始时游戏显示1-1游戏处于第一关
2.从磁盘c找到 C:\ProgramData\PopCap Games\PlantsVsZombies\userdata
3.选中此文件右键选择使用 hex editor neo打开此文件从图可以看到04列第一行有一个01,假设这个代表第一关,我们将游戏关闭,将此值修改为05,点击保存。
3.我们从新打开游戏发现关卡由原来的1-1变成了1-5,由此可以判断00000000行04列代表游戏管卡。
4.游戏总关数为50关,假设我想要直接玩第2-3关即第13关,首先我们推测该游戏为10进制设置,将00000000行04列的值直接改成10发现管卡变成了2-9,即第19关由此可知关卡并不是10进制数,我们重复该步奏该值分别设置成02,04,08,10,16,32(依据二进制,四进制,八进制,16进制,32进制进行取值),我们发现0.,04,08,都能和关卡对的上,输入10的时候发现关卡数和修改值不能相互对应,我们在册更改关卡值为09发现也能对的上,此视时我们玩一局升级到第十关再次打开该文件发现00000000行第04列的值变成例0a,通过百度0a是16进制10的代表值,因此得出关卡数为16进制
5,我们对我们的猜测进行验证,假设我要玩第5-2关即42关,转换成16进制为2a。发现关卡数和我们预想的一致,至此我们就可以随性更改游戏管卡数了
注意:植物大战游戏总共50关当更改游戏关数大于此值时会出现下图,游戏无法游玩
更改金钱数:
植物大战僵尸在3-5关解锁游戏商店,我们将关卡设置成3-5,具体方法参考上面
1.打开游戏商店金钱为0,我们玩一局游戏钻取金钱
2.再次打开游戏商店发现金钱数变为460
3.我们用hex editor neo打开用户文件user4.dat发现00000000行第08列数值变为2e。因为之前关卡为16进制我们先以16进制推测,刚好是金钱数除以10
4.但是该值最大的二进制数为ff,如果大于该值呢?我 们先将此处的值修改为ff,发现该值为2550,然后在玩一局观察是否会发生变动。
5.玩完之后发现09列的数值有变动,我们打开游戏商店发现金钱数为2820,用户数据变成1a01
6.游戏金钱数除以10转换位16进制数位11a,而用户文件显示1a01,第九列在形式上看像是记录高位数据的,接下来我们按照推论测试一下,我们将用户08,09两列分别改为1a10,按照推测实际16进制数为101a,游戏金钱应该为a160 + 1161+0162+1163=10+16+4096=4122,金钱为41220
7.我们继续将08.09两列数值写成ff,再玩一局看金钱数据是否会发生变化,经过游玩发现0a列也和金钱有关
8,我们继续将测试看是否还有修改的空间这次依次将0a,0b,0c,0d,0e,0f分别测试,当写入0c时,游戏报错,依次可以推断出08,09,0a ,0b都时今钱修改的位置
总结:
植物大战僵尸用户关卡修改在第四列,且修改数据不得大于总关数
商店在3-5关时解锁,修改金钱数时需将游戏关卡调至大于等于3-5关,00000000行08,09,0a,0b均可设置金钱数,08,09,0a,0b记录的数值依次递增