好友
阅读权限10
听众
最后登录1970-1-1
|
我们先找到种植call的调用位置
00410A8E 8B50 2C mov edx,dword ptr ds:[eax+0x2C]
00410A91 |. 8B40 28 mov eax,dword ptr ds:[eax+0x28] ; 植物编号
00410A94 |. 52 push edx ; -1
00410A95 |. 50 push eax ; 植物编号
00410A96 |. 8B4424 20 mov eax,dword ptr ss:[esp+0x20] ; 地图y坐标
00410A9A |. 57 push edi ; 地图x坐标
00410A9B |. 55 push ebp ; 1B6FE360
00410A9C |. E8 7FC6FFFF call PlantsVs.0040D120
僵尸生成call
00413055 |> \50 |push eax ; 0 4 3 1
00413056 |. 56 |push esi ;
00413057 |. 8BC7 |mov eax,edi
00413059 |. E8 62ADFFFF |call PlantsVs.0040DDC0
还要僵尸的数据偏移
+b8 敌我标志位 (char类型)
+0xc8 僵尸血量
+0x18 僵尸显示 消失标志位 1 显示 0 消失
+2c 僵尸x坐标 坐标极限值C1020A73
+30 僵尸y坐标
我通过魅惑植物找到 僵尸被魅惑时 +b8位置会被置1
在种植call头部jmp跳到一块内存
调用僵尸call
09CA00A8 50 push eax
09CA00A9 90 nop
09CA00AA 90 nop
09CA00AB 90 nop
09CA00AC 6A 01 push 0x1
09CA00AE 8B3D C09E6A00 mov edi,dword ptr ds:[0x6A9EC0]
09CA00B4 8BBF 20030000 mov edi,dword ptr ds:[edi+0x320]
09CA00BA 8B7F 08 mov edi,dword ptr ds:[edi+0x8]
09CA00BD 8B3F mov edi,dword ptr ds:[edi]
09CA00BF 8B7F 08 mov edi,dword ptr ds:[edi+0x8]
09CA00C2 8BC7 mov eax,edi
09CA00C4 E8 F7DC76F6 call PlantsVs.0040DDC0
09CA00C9 C680 B8000000 0>mov byte ptr ds:[eax+0xB8],0x1
09CA00D0 C740 2C 730A02C>mov dword ptr ds:[eax+0x2C],0xC1020A73
09CA00D7 - E9 49D076F6 jmp PlantsVs.0040D125
这样当你种植植物时 会在哪种植的地方生成一个僵尸
![]() |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|
|