吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 21472|回复: 105
收起左侧

[游戏安全] 植物大战僵尸一击必杀的实现

  [复制链接]
b1ackie 发表于 2019-8-5 18:14
本帖最后由 b1ackie 于 2019-9-21 01:35 编辑

1.思路
实现对于僵尸一级必杀的话,那么我们可以通过僵尸的血量去寻找,每当一颗豌豆打到僵尸身上的时候,僵尸的血量肯定是在不断减少的,那么找到这个地方,应该就可以实现一击必杀了吧。
2.寻找
上CE,找!当僵尸出现的时候,先搜索未知值,然后每当一个豌豆打在僵尸身上的时候搜索,减少的值,然后没打的时候搜索未变动的值,通过这样不断的搜索筛选,找到了这样一个地址,可以看到每当一个豌豆打在僵尸身上的时候,这个值都在减少,修改此值为0后,僵尸立马死去,说明这个地址存储的就是僵尸的血量。

CE寻找

CE寻找


通过这个地址,右键,find out what accesses this address,可以看到这几处地方,我们重点关注一下比较的地方,把地址记下来。

访问

访问


上OD,寻找刚才CE中看到的CMP的地方。下一个断点,发现在豌豆还未打到僵尸身上就断了下来(主要看的是54D525处的比较,因为这里和0做比较,猜测是检测僵尸血量是否为0,为0为死亡),看一下这里是僵尸血量和0作比较,我们修改条件,让JG不要跳转。

跳转

跳转


修改过后发现僵尸立马死掉,直接出了动画效果。说明这里就是判断僵尸血量的地方。

修改后死亡

修改后死亡



3.新的问题
修改此处的跳转就可以实现僵尸的一击必杀了,但是出现了新的问题,就是当出现路障僵尸的时候,并不会秒杀它,这是为什么呢?

路障僵尸

路障僵尸


那么应该是路障僵尸的血量并不在这里进行判断,我们执行出去,在外面给这个函数下个断,当植物攻击路障僵尸都不会断下来,路障僵尸的血量的判断都不在这个函数中。
出来.png

我们在函数头部下断,当攻击路障僵尸的时候断了下来,顺序执行,这部分只有四个CALL,发现两个个call不会执行,会跳过去,只会执行下面的两个call,最后一个call里面是我们实现击杀普通僵尸的地方。继续单步执行,发现54D60F处的跳转会跳过最后一个call,所以我们刚才的修改无法实现击杀路障僵尸。
找到护甲call.png

继续动态调试,发现当路障僵尸头上的路障被打掉的时候,程序断在了最后一个call的地方,之后路障僵尸直接死了。正常打路障僵尸应该是先把头上的路障打掉,然后他变成一个普通僵尸继续打,然后僵尸被打死。猜测一下,我们的僵尸其实是由两部分组成,僵尸本体,和护甲,像路障僵尸,铁桶僵尸这种,都是普通的僵尸不过加上了护甲而已,54D608的call应该是判断僵尸护甲值的,当护甲减到0,被打掉后,jle不再跳转,才开始调用54D613处的call,计算僵尸血量值。无护甲的僵尸只是血量的不同,比如小鬼僵尸,跳跳僵尸这些,但是应该都是要调用54D613的call的,我自己测试了一些,可以自己去动态调试验证。
路障死了.png

我们可以通过CE来验证一下我们的猜测,打路障僵尸,然后通过CE寻找一下路障僵尸的血量。还是先搜索未知值,然后通过不断的搜索减少的值和未变动的值。最终确定下来一个地址。
CE寻找护甲.png

我们尝试修改值为0,发现僵尸并没有死,但是他头上的路障不见了。
CE修改.png

右键find out what accesses this address之后,记下这几个地址,换OD
护甲访问.png

在OD中找到地址,下断,回到游戏里当攻击到路障的僵尸的时候程序断了下来。
护甲OD地址.png

执行出去发现就是我们刚才说的那个call,这验证了我们的猜测。
护甲call.png

我们大致看一下刚才下断那里,当前ebp+0xD0存的就是僵尸的护甲值,通过赋值到ecx中经过一些计算,计算伤害,然后再重写进地址中,最后54CDF4处test ecx,ecx(上一条语句,ecx的值是存储护甲这个地址赋值的)比较判断是否为0,来看一下护甲值是否为0,来决定一个返回值,这个返回值出去决定是否跳过下面的那个call,也就是僵尸本身血量的那个call,到这里流程基本就清楚了,修改也比较好改了。
护甲攻击.png


4.一击必杀
这里可以有两种修改方式第一,修改那个函数里面对于护甲值得判断,也就是先实现一击必打破护甲,再像刚才那样修改本体的血量的判断,实现对于本体的一击必杀。但是这样对于带护甲的僵尸来说,不是一击必杀,需要两击,所以这不行。
修改护甲攻击.png

第二,完美的一击必杀,第一必须要像刚才的那样,把僵尸的血量那里修改了,这样只针对无护甲僵尸,然后对于有护甲的僵尸,可以直接修改外面的判断条件,把这里直接nop掉,因为不管你护甲多高,最终都是要进入下面这个call的,只要你本体死亡,那就是死亡。这样对于任何僵尸都是一击必杀。
完美一击必杀.png


5.效果
直接把植物种在前面,反正僵尸永远过不来。
效果.jpg

巨人僵尸也是一下秒杀
巨人僵尸.jpg

可以下断看看,发现会直接断在刚才分析的那个非护甲僵尸的call那里(OD中写的是普通其实不太严格,应该写非护甲僵尸的),可以进去看看僵尸血量地址里的值,会发现只不过是值比较大,因为巨人僵尸血比较厚。这验证了我们刚才的猜测。
巨人验证.jpg
血量.jpg

免费评分

参与人数 47威望 +1 吾爱币 +49 热心值 +41 收起 理由
青山枯叶 + 1 谢谢@Thanks!
新手12138 + 1 + 1 我很赞同!
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhao. + 1 热心回复!
5280226 + 1 + 1 我很赞同!
dzj0821 + 1 + 1 谢谢@Thanks!
laley + 1 + 1 用心讨论,共获提升!
三木零 + 1 + 1 用心讨论,共获提升!
何枝可依 + 1 僵尸:我有一句话不知当讲不当讲
zmy793 + 1 + 1 我很赞同!
朽沐一尘不染 + 1 + 1 用心讨论,共获提升!
因兴有乐而趣 + 1 + 1 谢谢@Thanks!
LOLQAQ + 1 + 1 我很赞同!
Angle丶dianfeng + 1 植物大战僵尸被你玩坏了...
yy17312 + 1 + 1 用心讨论,共获提升!
DSFRdxsed + 1 谢谢@Thanks!
路漫漫w + 1 我很赞同!
腾旭 + 1 小白的我,还是看不懂
天尊小帅 + 2 + 1 用心讨论,共获提升!
ww10314 + 1 + 1 我很赞同!
Charbel + 1 + 1 我很赞同!
hhggbf + 1 + 1 用心讨论,共获提升!
nicai8080 + 1 + 1 我很赞同!
道极承天 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
下不完的雨 + 1 + 1 用心讨论,共获提升!
为海尔而战 + 1 + 1 我很赞同!
wwr2128 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Cadman + 1 + 1 谢谢@Thanks!
bugof52pj + 1 + 1 谢谢@Thanks!
宝宝哒277 + 1 我很赞同!
Leslie轻烟 + 1 + 1 写的这么多 一定很用心吧
zls黑战魔 + 1 + 1 用心讨论,共获提升!
超能小虎 + 1 + 1 谢谢@Thanks!
Mr.Eleven + 1 + 1 学到了
XGT + 1 + 1 谢谢@Thanks!
等价跤换 + 1 我很赞同!
runaway811 + 1 + 1 我很赞同!
踩著棺材跳鬼步 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
夏夜听雨 + 1 + 1 我很赞同!
wfjxw2008 + 1 + 1 热心回复!
gunxsword + 1 + 1 我很赞同!
wacdm + 1 + 1 用心讨论,共获提升!
RyanEdward + 1 谢谢@Thanks!
Barnes + 1 + 1 用心讨论,共获提升!
wugagaga + 1 + 1 热心回复!
天赐一郎 + 1 + 1 谢谢@Thanks!
batmanpy + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

1983 发表于 2019-8-6 04:30
所谓的 给人勇敢,不如 教人勇敢,直接给 修改器的话,伸手党太多。但是对于小白来说又看不懂!

那么这时候怎么办?别忘了这是学习的地方!这不是索取资源的网站!

不过呢,对于 沙发的小哥 的行为,也能理解,也是正常。因为这也是我看到文章中间部分 时的想法,因为看不懂了。。。
但是对于想要学习的人来说就需要一股【劲】,探索的欲望。
如果其他用户说:我不是来学习的,就是来看看,可以的话顺便捞点资源。。。那当我什么都没说。。。
banlv87 发表于 2019-8-5 18:45
lizhipei78 发表于 2019-8-5 18:22
你这与这么多,我怎么看得懂啊,弄个修改器好了
 楼主| b1ackie 发表于 2019-8-5 18:26
lizhipei78 发表于 2019-8-5 18:22
你这与这么多,我怎么看得懂啊,弄个修改器好了

分析出这些后,就可以写出修改器实现一击必杀
小南果果 发表于 2019-8-5 18:33
多谢分享教程
天赐一郎 发表于 2019-8-5 18:35
感谢分享教程
test_ 发表于 2019-8-5 18:37
楼主不如改一下窝瓜,一屁股能坐死整个屏幕的僵尸
我是谁2580 发表于 2019-8-5 18:45
b1ackie 发表于 2019-8-5 18:26
分析出这些后,就可以写出修改器实现一击必杀

厉害了厉害了
Tanhua238959150 发表于 2019-8-5 18:49
学习了,不过这对没有学习过语言的人,根本看不懂啊
Phantom可 发表于 2019-8-5 18:55
当年的乐此不疲
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 10:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表