ce吧 关注:194,484贴子:3,795,766

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

只看楼主收藏回复

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


IP属地:山东1楼2016-12-31 10:56回复
    二楼我的


    IP属地:广东来自Android客户端2楼2016-12-31 10:57
    收起回复


      IP属地:广东来自Android客户端3楼2016-12-31 10:57
      收起回复


        IP属地:上海来自Android客户端7楼2016-12-31 11:07
        收起回复


          IP属地:广东来自Android客户端8楼2016-12-31 11:08
          回复
            大声告诉我我是几楼


            IP属地:山东9楼2016-12-31 11:09
            回复
              我们要找技能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
                              回复