三招干废“植物大战僵尸”
一直以来都是用CE修改“植物大战僵尸”的相关数据,感觉很不爽,为什么不直接修改主程序呢?
既然学了逆向,为什么不用呢?
其实“植物大战僵尸”就三个关键点,一、阳光值,二、冷却时间,三、一击毙命
哦对了,版本不同,地址可能不同,我的这个文件版本:1.0.0.1051
一、修改收取阳光得到的值
标准一个大阳光=25,小阳光(夜晚阳光)=15
1、启动游戏,打开CE,载入游戏,“首次扫描“当前阳光值50,会找到很多地址
2、当掉落阳光时收取,阳光总值变为75,回到CE“再次扫描“75,一般就剩下一个地址了
3、双击找到的地址,把地址放到下方地址栏,然后在地址栏鼠标右击地址选”找出是什么改写了这个地址“
4、当再次有阳光掉落并收集时,就会出现我们要的地址,如下图:
5、找到了关键地址:00430A11,用OD载入主程序,CTRL+G,输入地址,就到了程序处,如图:
6、向上找到函数开始处下断,经过分析,得到ECX为增加的值,那么就找是谁修改了ECX,向上找到2处。
1)、004309EF,2)、004309FB
第一个19为十六进制,转为十进制就是25,既然找到了,那就不客气了,就看你想让一个阳光值多少了。
我改为:
004309EF mov ecx,0x3E8
第二个为小阳光的修改处,我改为:
004309F6 cmp eax,0x5 ”这句没动,也可以NOP“
004309F9 mov ecx,0x3E8
二、去除冷却时间
还是先用CE查找关键地址,方法如下:
1、先放下一个植物,然后回到CE,这时游戏自动暂停,“扫描类型”选择“值介于…两者之间”,输入10-1000,
(第三的一击毙命也是用这个方法)如图:
2、继续游戏后马上再回到CE,这样游戏又暂停了,这时“扫描类型”改为“增加的数值”,
技巧:为了加快搜索,这里的“扫描类型”要经常变换,常用的有:
1)、“增加的数值”
2)、“未变动的数值”
3)、“值介于…两者之间”
以上三种方法结合使用,尤其“未变动的数值”能去除很多的数据。
3、最后就会找到一个相应的地址,同样双击,放到地址栏,然后在地址栏鼠标右击地址选”找出是什么改写了这个地址“
4、回到游戏,就会出现一个地址:
0048728C 8347 24 01 add dword ptr ds:[edi+0x24],0x1
5、用OD载入游戏,CTRL+G来到关键地址处:
关键代码就这4行:
0048728C 8347 24 01 add dword ptr ds:[edi+0x24],0x1
00487290 8B47