ce吧 关注:195,837贴子:3,798,824

扫盲第三弹,带你看懂Call,自己分析参数

只看楼主收藏回复

重申,本扫盲系列目的:当你学习完全系列后,可以独立完成分析,及实现绝大部分常规功能。
往期回顾
1.扫盲第一弹,基址到底是什么? https://tieba.baidu.com/p/5833596628?pid=121363695480
2.扫盲第二弹,带你看懂解密函数,写出简单的解密 https://tieba.baidu.com/p/5834247161?pid=121372624427
今天的科普,带你分析call,完成call参数的分析,及如何实现调用
今日范例 城镇移动Call
不多说,老规矩,先上汇编代码


IP属地:云南1楼2018-08-11 11:52回复
    如上,今天的汇编代码有点长,我就不一一分析了,我们直接来看编译后的伪代码。通过伪代码,你就会有一个直观的认识,城镇移动call,到底是什么样的

    可以看到,城镇移动call,为__stdcall类型
    函数原型为
    int __stdcall sub_3406DC0(int a1)
    我们可以看到,函数第一句语句为 发送缓冲(36)是不是感觉超级眼熟?对,没错!这就是组包移动的来历,包括接下来发送的参数,都和组包移动一样。那我们接下来,就来分析这个call


    IP属地:云南2楼2018-08-11 11:58
    收起回复
      通过伪代码,我们可以直观的看到,参数为一个整数型。那么,我们可以基本确定,参数为一个指针,指向一个结构体。那么我们继续看下面我标注的结构体参数的内容,总共7个。
      由此,我们可以初步得到如下参数结构体

      好的,我们现在知道了参数,那怎么知道程序调用时的值呢? 最简单的办法,HOOK
      接下来,我们HOOK这个call,来查看参数
      关于HOOK,我在之后的教程,会一一来分析,包括__stdcall,__fastcall,__thiscall的HOOK
      现在略过,我们直接看HOOK后的调用结果

      看到这里,相信大家已经看明白了
      参数0=大地图ID,参数1=区域ID,参数2=X,参数3=Y 其余的为固定值
      那么,我们重新改下我们之前定义的结构体参数,以及函数原型

      函数原型


      IP属地:云南3楼2018-08-11 12:10
      回复
        等级1级 我连标点符号不都信


        来自Android客户端4楼2018-08-11 12:14
        回复
          那么,现在我们就可以很简单的调用城镇移动Call了
          如下

          今日的扫盲,到此就结束了,接下来的教程,重点为告诉大家,怎么找到call,以及如果通过HOOK获取参数
          大家如果有什么问题,可以在帖子提问


          IP属地:云南5楼2018-08-11 12:15
          回复(3)
            此系列不申精,天理不容,本吧大佬降临


            IP属地:湖北6楼2018-08-11 12:17
            收起回复
              大佬 大佬


              IP属地:上海来自Android客户端8楼2018-08-11 13:30
              回复
                关注了


                9楼2018-08-11 13:45
                收起回复
                  有点意思


                  IP属地:山东来自Android客户端10楼2018-08-11 15:13
                  收起回复
                    厉害


                    11楼2018-08-11 16:19
                    回复
                      火钳刘明


                      IP属地:江苏12楼2018-08-11 16:21
                      回复
                        这个只适合有点基础的人看


                        IP属地:新疆来自Android客户端13楼2018-08-11 16:22
                        收起回复
                          还是这种帖子好。
                          比那些推广帖好多了


                          IP属地:广东来自Android客户端14楼2018-08-11 16:55
                          收起回复
                            说实话看不懂


                            来自Android客户端15楼2018-08-11 17:01
                            回复
                              支持楼主


                              IP属地:湖南来自Android客户端16楼2018-08-11 17:08
                              回复