ce吧 关注:196,579贴子:3,801,612
  • 13回复贴,共1

【职业技能call里的小小技能call】[图文教程]

取消只看楼主收藏回复

首先,我不知道这个这么叫是不是对,但是确实可以调用,如果我说错,反正隔着电脑你也弄不死我,二楼酝酿开始更


IP属地:山东1楼2016-12-31 10:56回复
    我们要找技能call,肯定离不开的就是三大因素:技能代码 触发基址 和坐标
    这里我用的是驱魔,玩过DNF的同学都知道,驱魔的普攻和Z挑都是可以聚力一个冲击波,这个我之前用地图遍历去遍历过,是24018 我们找到这个基址(部分技能是没有绿色的基址)


    IP属地:山东11楼2016-12-31 11:14
    回复
      这里用OD跟过来之后呢,发现是一团乱
      但这个并没有关系 我们向上画一下

      他就看起来正常多了


      IP属地:山东12楼2016-12-31 11:16
      回复

        我们在他的传递技能代码之前下一个断点,

        单步一下发现esi是触发基址 但是貌似没用


        IP属地:山东13楼2016-12-31 11:30
        回复

          这里大概可以看出是传递伤害,但是我们这里不是讲的HOOK技能 所以这里就算了
          我们继续走


          IP属地:山东14楼2016-12-31 11:32
          回复

            当我们走到这里的时候 为什么走到这里呢,上面都是一些赋值,我们可以不看,下面又是一段看不懂的数据,我们进这个call里看,他最后也调用了技能call

            所以断定这里非常像,我们就可以来分析这一段数据


            IP属地:山东15楼2016-12-31 11:34
            回复

              我们-返回,在走一下,我们看到给ecx赋值了,我们椎栈来看一下。
              $ ==> > 25A50000
              $+4 > 00005DD2
              $+8 > 0000042E
              $+C > 0018E7BC
              $+10 > 00000000
              $+14 > 00000000
              $+18 > FFFFFF56
              $+1C > 00000000
              $+20 > 00000000
              $+24 > 00000000
              $+28 > 00000000
              $+2C > 00000004
              $+30 > 00000000
              $+34 > 00000004
              $+38 > 12FB7000
              $+3C > 00000000
              $+40 > 00000000
              $+44 > 00000000
              $+48 > FFFFFFFF
              $+4C > 00000000
              $+50 > FFFFFFFF
              $+54 > 00000000
              $+58 > 0000FFFF
              $+5C > 0000FFFF
              那我们就可以肯定,这里是传递一段技能数据(个人理解),我们可以用400600地址来尝试:
              根本椎栈的指针数值,我们可以推断 400600=触发基址、400604是触发代码、400608是伤害、58+5C是结束双FFFF
              这里我们看不出明显的技能X Y对吧 我们知道技能的三要素是缺少了。


              IP属地:山东16楼2016-12-31 11:38
              收起回复

                那我们先无视继续走,这里我不知道有没有用,我们先无视,进入这个call 我们开始在头部下端。

                放一个小圈,头部断下我们来看椎栈返回


                我们这里发现 结构是一样的但是寄存器不一样,我们无视在PUSH edx下端看edx的寄存器


                IP属地:山东17楼2016-12-31 11:44
                回复

                  $ ==> > 25A50000
                  $+4 > 00005DC9
                  $+8 > 0000001C
                  $+C > 25A57348
                  $+10 > 00000000
                  $+14 > 00000000
                  $+18 > 0000002E
                  $+1C > 00000000
                  $+20 > 00000053
                  $+24 > 00000000
                  $+28 > 00000000
                  $+2C > 00000004
                  $+30 > 00000000
                  $+34 > 00000020
                  $+38 > 12FB7000
                  $+3C > 00000000
                  $+40 > 00000000
                  $+44 > 00000000
                  $+48 > FFFFFFFF
                  $+4C > 00180000
                  $+50 > FFFFFFFF
                  $+54 > 00000000
                  $+58 > 0000FFFF
                  $+5C > 0000FFFF
                  继续来看椎栈,这里我们就发现了一个有趣的地方,貌似18 2E就是他的X坐标我们怎么知道的呢

                  我们这里把这些都00然后让游戏运行

                  你会发现技能的发生了明显地变化


                  IP属地:山东18楼2016-12-31 11:52
                  回复
                    那这样我们要的都有了 下面开始调用就好了,
                    按照之前讲的画一个框架

                    那我们打开德玛西亚

                    我们call之后呢发现游戏炸了,这就代表我们哪里写错了 我们继续上游戏哦


                    IP属地:山东19楼2016-12-31 11:59
                    回复

                      这样按照他的格式来就可以啦!

                      这个跳转是控制坐标的,分二种一种是人物0,0坐标一个是地图0,0坐标 大家自己玩吧~


                      IP属地:山东21楼2016-12-31 12:12
                      回复
                        2016年最后一个教程,也是我最后发布的一个教程了!
                        在这里提前祝愿大家元旦快乐
                        度过2016的所有晦气和怨念来迎接2017吧!


                        IP属地:山东22楼2016-12-31 12:14
                        收起回复


                          IP属地:山东51楼2017-09-30 21:33
                          回复


                            IP属地:山东52楼2017-09-30 21:33
                            收起回复