植物大战僵尸吧 关注:557,516贴子:5,062,540
  • 11回复贴,共1

迄今为止最具想象力的漏洞:Potato Skip Skip

取消只看楼主收藏回复

如题


IP属地:河北来自Android客户端1楼2024-04-29 14:33回复
    首先需要先种一个玉米加农炮,
    然后存读档,种植模仿者,点击加农炮。
    保证模仿者模仿完毕前加农炮死亡,并且保证模仿者产生的植物ID与加农炮完全相同。


    IP属地:河北来自Android客户端2楼2024-04-29 14:34
    收起回复
      完成以上操作后,点击鼠标,可以让模仿者产生的植物错误地运行加农炮开火函数,从而实现很多未定义的事件。


      IP属地:河北来自Android客户端4楼2024-04-29 14:35
      回复
        需要注意的是,由于加农炮开火会设置发射倒计时,这个操作会让正常无法开火的植物开火。
        然而很神奇的是,决定子弹类型的地方,有关变量是没有初始化的,所以子弹类型是个ub(更具体的内容暂未分析),大多时候是一个很大的数。
        这样会导致之后子弹绘制,子弹击中僵尸取伤害等地产生极大的ub行为,而且很容易导致崩溃。


        IP属地:河北来自Android客户端5楼2024-04-29 14:37
        回复
          一个可能的避免手段是利用一个编号小的火豆,让火豆→大ID子弹的顺序绘制,这样大ID子弹可以继承火豆绘制残留内存中的nullptr避免崩溃,接下来等待子弹飞出屏幕消失即可。


          IP属地:河北来自Android客户端6楼2024-04-29 14:38
          收起回复
            对土豆地雷使用并避免崩溃后,土豆地雷的更新函数中,先后判断土豆地雷是不是准备,升起,准备完毕。所以此时一个加农炮发射状态的土豆地雷是不会进行索敌的。
            同时,土豆地雷受伤判断时,只是判断是不是准备阶段,所以土豆地雷不会受啃食伤害。


            IP属地:河北来自Android客户端7楼2024-04-29 14:39
            回复
              综上,使用这个可以跳过一堆撑杆造无敌土豆的过程,之前那个是Potato,暂且叫Potato Skip,所以这个就命名为Potato Skip Skip了,简称pss


              IP属地:河北来自Android客户端8楼2024-04-29 14:40
              收起回复
                这个bug想要研究相当复杂,其中涉及很多ub操作分析起来挺麻烦,之后帖子会持续跟进,但是可以确定这个的其他开发是很有希望的。


                IP属地:河北来自Android客户端9楼2024-04-29 14:41
                回复
                  发现一个稳定避免的方法:让这个植物的栈位之前紧接着来一个寒冰射手
                  寒冰射手最有用的一集


                  IP属地:河北12楼2024-04-29 16:56
                  收起回复

                    初步开发利用了一下


                    IP属地:河北20楼2024-04-29 17:45
                    收起回复
                      关于海草我解释一下,僵尸会认为自己被海草抓取了,但是海草不认为,海草再次索敌成功后,海草会真的把僵尸拽下去(同时旧的僵尸不再认为自己被海草拉的,如果新旧僵尸不同的话)。
                      具体体现为不吃黄油,不会啃食,海豚直接无条件停止本身特性更新,不被小推车索敌,不会引起窝瓜砸,不会被{海草,土豆雷,大嘴花}索敌。


                      IP属地:河北21楼2024-04-29 17:50
                      收起回复
                        常见问题Q&A
                        也可以在此回复,我会不定期的回答一些有价值(即没有直接或者间接回答过的正常的)的问题。
                        Q. 这和四杆引雷或撑杆无敌土豆雷原理一样吗?
                        A. 不一样。上面说的都利用撑杆让土豆地雷的索敌区域变化,而pss中的土豆雷压根没有进行过索敌。
                        Q. 这个漏洞的核心问题是什么?栈位在其中发挥了什么作用?
                        A. 栈位是不可或缺的诱因,本质是让植物进入原先不可能进入的一个状态。
                        Q. pss植物可以长期存在或多个存在吗?屋顶前院等地形能用吗?
                        A. 可以长期稳定存在,也没有额外的数量限制。所有地形由于不妨碍玉米炮使用,都是可以进行pss操作的。
                        Q. 为什么这个操作对不同植物的现象差异如此巨大?
                        A. 因为游戏里写法混乱,部分植物是判断状态进行若干分支,而部分植物有一个总的else语句囊括所有其他分支,还有部分情况用的是当前不处于某某状态等等,所以表现差异才会如此巨大。
                        Q. 为什么必须是寒冰射手?
                        A. 这一切都是Steins;Gate的选择。


                        IP属地:河北来自Android客户端85楼2024-04-30 11:52
                        收起回复