
智能摘要 AI
本文介绍了如何使用CE工具修改《植物大战僵尸》的游戏机制,包括阳光值和CD冷却时间。作者首先通过多次“改变数值-搜索”操作,找到阳光值的基地址,确保重启游戏后仍能修改。接着,作者通过类似方法找到CD冷却时间的基地址,并发现冷却槽间隔50单位,因此只需在特定位置加50即可实现永久可用。最后,作者计划使用Hook技术进一步优化修改过程。文中包含大量截图和代码示例,帮助读者理解每一步操作。
为了深入了解软件工作的原理,就尝试了一下修改植物大战僵尸,本篇文章图片居多,还请各位感兴趣的伙伴耐心阅读, w(゚Д゚)w
阳光修改


我们把50放入搜索


在游戏中改变阳光值后继续搜索,一直重复 “改变阳光值,Next Scan 搜索”

尝试修改


实现功能,现在我们寻找基地址,否则我们每次重启游戏就需要重新搜索。
选中按 F5


5560为第一个偏移量,15698668为下一步查询地址

重新搜索该值

重复上面的 “选中 F5”,找到下一个地址

EAX=00452650
EBX=0019FD00
ECX=0274A6B0
EDX=00667BA0
ESI=15698668
EDI=0274A6B0
EBP=00000001
ESP=0019FC60
EIP=00452679
Probable base pointer =0274A6B0
0045266A - cmp byte ptr [edi+000004CF],00
00452671 - je 0045269B
00452673 - mov esi,[edi+00000768]
00452679 - test esi,esi
0045267B - je 0045269B
重新搜索

绿色的便是基地址


popcapgame1.exe+2A9EC0我们就可以反向推得阳光的基地址
[[[[popcapgame1.exe+2A9EC0]+768]+5560]]
你现在可以重启游戏验证,重启后依然可以修改
CD冷却修改

上面的植物槽,1为可用,0为不可用,此时1号位是可用状态

按上面的步骤一直循环搜索,改变状态搜索。


EAX=00000000
EBX=0000007D
ECX=0D9696B8
EDX=0000007D
ESI=0000002F
EDI=156984E0
EBP=156984E0
ESP=0019FB70
EIP=0040CDEF
Probable base pointer =0D9696B8
0040CDE4 - lea eax,[eax+eax*4]
0040CDE7 - shl eax,04
0040CDEA - mov byte ptr [eax+ecx+70],01
0040CDEF - call 00412330
0040CDF4 - pop edi

同样选中 F5


EAX=0D9696B8
EBX=00000000
ECX=0019F988
EDX=0274A6B0
ESI=00199944
EDI=0019FA98
EBP=156984E0
ESP=00199810
EIP=0041A1F6
Probable base pointer =156984E0
0041A1E7 - cmp dword ptr [edx+000007FC],04
0041A1EE - je 0041A248
0041A1F0 - mov eax,[ebp+00000144]
0041A1F6 - cmp [eax+18],bl
0041A1F9 - je 0041A232

继续搜索 数据不变,找最前面的 F5

EAX=00000001
EBX=00000001
ECX=0274A6B0
EDX=00030621
ESI=156984E0
EDI=0274A6B0
EBP=00000001
ESP=0019FC60
EIP=004526E6
Probable base pointer =0274A6B0
004526DB - mov ebx,eax
004526DD - lea ecx,[ecx+00]
004526E0 - mov esi,[edi+00000768]
004526E6 - add [edi+00000838],ebp
004526EC - test esi,esi
找到基址


popcapgame1.exe+2A9EC0[[[[popcapgame1.exe+2A9EC0]+768]+144]+70]

通过实验我发现冷却槽相差50,所以只要在70那+50就可以

后面打算用Hook来注入修改。
ESWINK , 版权所有丨如未注明 , 均为原创




评论 (0)