当前位置:   article > 正文

【植物大战僵尸-2】实现一炮秒杀僵尸_mov [ebp+000000c8],edi

mov [ebp+000000c8],edi

思路

​ 猜测僵尸的血量在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
  • 1
  • 2
  • 3
  • 4
  • 5

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]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 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


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

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

image-20220306181613379

image-20220306181514073

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/744204
推荐阅读
相关标签
  

闽ICP备14008679号