为了深入了解软件工作的原理,就尝试了一下修改植物大战僵尸,本篇文章图片居多,还请各位感兴趣的伙伴耐心阅读, w(゚Д゚)w

阳光修改

「攻防对抗」植物大战僵尸CE修改并且找基址插图
「攻防对抗」植物大战僵尸CE修改并且找基址插图1

我们把50放入搜索

「攻防对抗」植物大战僵尸CE修改并且找基址插图2
「攻防对抗」植物大战僵尸CE修改并且找基址插图3

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

「攻防对抗」植物大战僵尸CE修改并且找基址插图4

尝试修改

「攻防对抗」植物大战僵尸CE修改并且找基址插图5
「攻防对抗」植物大战僵尸CE修改并且找基址插图6

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

选中按 F5

「攻防对抗」植物大战僵尸CE修改并且找基址插图7
「攻防对抗」植物大战僵尸CE修改并且找基址插图8

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

「攻防对抗」植物大战僵尸CE修改并且找基址插图9

重新搜索该值

「攻防对抗」植物大战僵尸CE修改并且找基址插图10

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

「攻防对抗」植物大战僵尸CE修改并且找基址插图11
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

重新搜索

「攻防对抗」植物大战僵尸CE修改并且找基址插图12

绿色的便是基地址

「攻防对抗」植物大战僵尸CE修改并且找基址插图13
「攻防对抗」植物大战僵尸CE修改并且找基址插图14
popcapgame1.exe+2A9EC0

我们就可以反向推得阳光的基地址

[[[[popcapgame1.exe+2A9EC0]+768]+5560]]
「攻防对抗」植物大战僵尸CE修改并且找基址插图15

你现在可以重启游戏验证,重启后依然可以修改

CD冷却修改

「攻防对抗」植物大战僵尸CE修改并且找基址插图16

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

「攻防对抗」植物大战僵尸CE修改并且找基址插图17

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

「攻防对抗」植物大战僵尸CE修改并且找基址插图18
「攻防对抗」植物大战僵尸CE修改并且找基址插图19
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
「攻防对抗」植物大战僵尸CE修改并且找基址插图20

同样选中 F5

「攻防对抗」植物大战僵尸CE修改并且找基址插图21
「攻防对抗」植物大战僵尸CE修改并且找基址插图22
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
「攻防对抗」植物大战僵尸CE修改并且找基址插图23

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

「攻防对抗」植物大战僵尸CE修改并且找基址插图24
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

找到基址

「攻防对抗」植物大战僵尸CE修改并且找基址插图25
「攻防对抗」植物大战僵尸CE修改并且找基址插图26
popcapgame1.exe+2A9EC0
[[[[popcapgame1.exe+2A9EC0]+768]+144]+70]
「攻防对抗」植物大战僵尸CE修改并且找基址插图27

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

「攻防对抗」植物大战僵尸CE修改并且找基址插图28

后面打算用Hook来注入修改

ESWINK , 版权所有丨如未注明 , 均为原创

原文标题:「攻防对抗」植物大战僵尸CE修改并且基址

Eswink原创声明