本帖最后由 zxc8820 于 2024-7-17 19:58 编辑 一、自动拾取
1.1.png (929.01 KB, 下载次数: 0) 下载附件
2024-7-15 10:38 上传
最近无聊,好久没玩过CE修改器了,月初还是上个月这植物大战僵尸杂交版爆火,想想十多年前学习游戏修改的时候很多都用植物大战僵尸做教程,说明什么,说明修改简单,哈哈,老年人了找点自信,练练手。
自己做了几个小功能吧:自动拾取、种植无CD、植物0元购、植物攻速加倍、还有论坛看到的叠加种植。可能和论坛里有补分重叠,但是没关系,帖子我尽量多记录修改过程,一些错误过程和重复的过程就省略介绍了。希望能给新人们学到点思路吧,毕竟修改游戏最重要的就是找到想要修改的数据。你最好是有修改基础,如果你真的什么都不会的话,那你可能真的看不懂。
1.2.png (41.73 KB, 下载次数: 0)
下载附件
2024-7-15 10:38 上传
1.3.png (70.16 KB, 下载次数: 1)
下载附件
2024-7-15 10:38 上传
1.4.png (128.8 KB, 下载次数: 1)
下载附件
2024-7-15 10:39 上传
1.5.png (26.98 KB, 下载次数: 1)
下载附件
2024-7-15 10:39 上传
1.6.gif (2.58 MB, 下载次数: 1)
下载附件
2024-7-15 10:39 上传
1.7.png (14.94 KB, 下载次数: 0)
下载附件
2024-7-15 10:39 上传
1.8.png (33.74 KB, 下载次数: 0)
下载附件
2024-7-15 10:39 上传
1.9.png (16.21 KB, 下载次数: 0)
下载附件
2024-7-15 10:39 上传
这里插一句话,eax 是阳光地址。eax(阳光地址)+ 50(偏移)= 33072070 得来的,如下图
1.10.png (151.91 KB, 下载次数: 1)
下载附件
2024-7-15 10:39 上传
[Asm] 纯文本查看 复制代码
[ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: //this is allocated memory, you have read,write,execute access//place your code here cmp [eax+58],6 //这里是我发现,通关后新卡片[eax+50]值 = 1 并不会自动拾取,而且会变成无法点击BUG,所以加了个判断。这里[eax+58]的值代表的是某一种道具。 ja originalcode mov [eax+50],1originalcode: cmp byte ptr [eax+50],00 je PlantsVsZombies.exe+1B9DCexit: jmp returnhere"PlantsVsZombies.exe"+1B99A: jmp newmem nop returnhere:[DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "PlantsVsZombies.exe"+1B99A: db 80 78 50 00 74 3C //cmp byte ptr [eax+50],00 //je PlantsVsZombies.exe+1B9DC二、种植无CD
2.1.png (138.24 KB, 下载次数: 2)
下载附件
2024-7-15 15:46 上传
2.2.png (87.84 KB, 下载次数: 2)
下载附件
2024-7-15 15:46 上传
2.3.png (19.5 KB, 下载次数: 2)
下载附件
2024-7-15 15:46 上传
2.4.png (319.62 KB, 下载次数: 2)
下载附件
2024-7-15 15:46 上传
[Asm] 纯文本查看 复制代码
[ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: //this is allocated memory, you have read,write,execute access //place your code here originalcode: mov [ebp+24],eax mov [esp+10],eax exit: jmp returnhere "PlantsVsZombies.exe"+88263: jmp newmem nop 2 returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "PlantsVsZombies.exe"+88263: db 2B 45 24 89 44 24 10 //sub eax,[ebp+24] //mov [esp+10],eax三、植物0元购
3.1.png (51.08 KB, 下载次数: 3)
下载附件
2024-7-15 20:35 上传
3.2.png (30.28 KB, 下载次数: 2)
下载附件
2024-7-15 20:35 上传
3.3.png (23.82 KB, 下载次数: 2)
下载附件
2024-7-15 20:35 上传
3.4.png (60.05 KB, 下载次数: 2)
下载附件
2024-7-15 20:35 上传
3.5.png (40.22 KB, 下载次数: 2)
下载附件
2024-7-15 20:37 上传
3.6.png (180.94 KB, 下载次数: 3)
下载附件
2024-7-15 20:35 上传
3.7.png (48.78 KB, 下载次数: 3)
下载附件
2024-7-15 20:35 上传
3.8.png (26.48 KB, 下载次数: 3)
下载附件
2024-7-15 20:35 上传
3.9.png (65.06 KB, 下载次数: 2)
下载附件
2024-7-15 20:35 上传
3.11.png (43.57 KB, 下载次数: 2)
下载附件
2024-7-15 20:36 上传
3.12.png (73.53 KB, 下载次数: 2)
下载附件
2024-7-15 20:36 上传
3.13.png (104.84 KB, 下载次数: 2)
下载附件
2024-7-15 20:36 上传
[Asm] 纯文本查看 复制代码
[ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: //this is allocated memory, you have read,write,execute access //place your code here originalcode: mov eax,0 exit: jmp returnhere "PlantsVsZombies.exe"+4A3C13: jmp newmem nop 2 returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "PlantsVsZombies.exe"+4A3C13: db 8B 04 85 10 20 7A 00 //mov eax,[eax*4+PlantsVsZombies.exe+3A2010]四、植物攻速翻倍
1.png (33.43 KB, 下载次数: 1)
下载附件
2024-7-17 19:40 上传
2.png (33.73 KB, 下载次数: 0)
下载附件
2024-7-17 19:40 上传
3.png (27.87 KB, 下载次数: 0)
下载附件
2024-7-17 19:40 上传
4.png (154.19 KB, 下载次数: 0)
下载附件
2024-7-17 19:40 上传
5.png (16.33 KB, 下载次数: 0)
下载附件
2024-7-17 19:40 上传
6.png (42.01 KB, 下载次数: 1)
下载附件
2024-7-17 19:40 上传
7.png (212.11 KB, 下载次数: 1)
下载附件
2024-7-17 19:40 上传
,能看出子弹之间的距离缩小了。[Asm] 纯文本查看 复制代码
[ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: //this is allocated memory, you have read,write,execute access //place your code here originalcode: add dword ptr [esi+58],-02 mov eax,[esi+58] exit: jmp returnhere "PlantsVsZombies.exe"+5F8A9: jmp newmem nop 2 returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "PlantsVsZombies.exe"+5F8A9: db 83 46 58 FF 8B 46 58 //add dword ptr [esi+58],-01 //mov eax,[esi+58]五、叠加种植
1.png (92.28 KB, 下载次数: 0)
下载附件
2024-7-17 19:46 上传
2.png (51.65 KB, 下载次数: 0)
下载附件
2024-7-17 19:46 上传
3.png (19.08 KB, 下载次数: 0)
下载附件
2024-7-17 19:46 上传
4.png (41.43 KB, 下载次数: 1)
下载附件
2024-7-17 19:46 上传
5.png (296.89 KB, 下载次数: 1)
下载附件
2024-7-17 19:46 上传
6.png (50.52 KB, 下载次数: 0)
下载附件
2024-7-17 19:46 上传
这里因为筛选数据不怎么会动了,开始种植物了,选择已执行。
7.png (17.25 KB, 下载次数: 0)
下载附件
2024-7-17 19:47 上传
8.png (45.04 KB, 下载次数: 1)
下载附件
2024-7-17 19:47 上传
9.png (43.31 KB, 下载次数: 0)
下载附件
2024-7-17 19:47 上传
10.png (45.91 KB, 下载次数: 0)
下载附件
2024-7-17 19:47 上传
[Asm] 纯文本查看 复制代码
CE脚本代码: [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: //this is allocated memory, you have read,write,execute access //place your code here originalcode: jmp PlantsVsZombies.exe+10754 exit: jmp returnhere "PlantsVsZombies.exe"+FE2F: jmp newmem nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "PlantsVsZombies.exe"+FE2F: db 0F 84 1F 09 00 00 //je PlantsVsZombies.exe+10754
3.10.png
(78.75 KB, 下载次数: 4)
下载附件
2024-7-15 20:35 上传
查看全部评分