【植物大战僵尸-2】实现一炮秒杀僵尸

思路

​ 猜测僵尸的血量在0-1000之间,通过CE搜索0-1000的值,并且每次打中僵尸之后搜索减少的值。通过这个可以顺带理解DNF或者其他刷怪游戏,秒杀怪物。

1、最终找到普通僵尸的值为200,每次打中之后减少20。

image-20220306155637766

2、同样,右击找哪里访问了这个地址。

image-20220306155751226

005312FE - 8B BD C8000000  - mov edi,[ebp+000000C8]
0052D71B - 8B B0 C8000000  - mov esi,[eax+000000C8]
00531319 - 89 BD C8000000  - mov [ebp+000000C8],edi
0052A527 - 39 8B C8000000  - cmp [ebx+000000C8],ecx
00531783 - 83 BD C8000000 00 - cmp dword ptr [ebp+000000C8],00

3、通过OD进行调试查看,寻找减少僵尸血量数值的代码。

4、搜索第一个005312FE,看了半天没发现可以下手的地方

image-20220306160254188

5、搜索第二个0052D71B也同样没发现

image-20220306160344674

6、搜索第三个00531319,发现里面有一个减法运算,想必这里就是减少血量的地方。

image-20220306160421916

7、由此看来edi则是当前血量的值,可以通过修改edi的值,修改当前血量。

8、修改上面0053130F,减法100,增加炮弹威力。但是修改后,下面的汇编代码会被nop。这种方式程序会崩溃。

image-20220306180035298

9.解决方案,Ctrl+B里面搜索很多0,则跳转到006510CD这个位置。在这里吧nop的代码补全

image-20220306180349946

10.将减少血量的代码复制到下面任意地方。

之前代码

0053130F      2B7C24 20     sub edi,dword ptr ss:[esp+0x20]          血量减少运算
00531313      894424 1C     mov dword ptr ss:[esp+0x1C],eax
00531317      8BC5          mov eax,ebp
00531319      89BD C8000000 mov dword ptr ss:[ebp+0xC8],edi          ;  PlantsVs.<ModuleEntryPoint>
0053131F      E8 ECC3FFFF   call PlantsVs.0052D710
00531324  |.  8BD8          mov ebx,eax
00531326  |.  8B45 24       mov eax,[arg.8]

006510E1      00            db 00
006510E2      00            db 00
006510E3      00            db 00
006510E4      00            db 00
006510E5      00            db 00
006510E6      00            db 00
006510E7      00            db 00


修改之后的代码,其中 sub edi,64为每次减少血量100。这样两炮就可以打死一个僵尸,这里的威力可以任意调节。

64位16进制转换10进制为100。

image-20220306181613379

image-20220306181514073

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叁滴水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值