• 刮开有奖


    好久没做题了,做一道练练手

    32位exe,无壳

    拖入ida,找到关键函数

     

     看sub_4010F0

    是对v7的修改,将代码改一下

    #include<stdio.h>
    int sub_4010F0(char* a1, int a2, int a3)
    {
      int result;
      int i;
      int v5;
      int v6;
    
      result = a3;
      for ( i = a2; i <= a3; a2 = i )
      {
        v5 = i;
        v6 = a1[i];
        if ( a2 < result && i < result )
        {
          do
          {
            if ( v6 > a1[result])
            {
              if ( i >= result )
                break;
              ++i;
              v5[a1] = a1[result];
              if ( i >= result )
                break;
              while ( a1[i] <= v6 )
              {
                if ( ++i >= result )
                  goto LABEL_13;
              }
              if ( i >= result )
                break;
              v5 = i;
              a1[result] = a1[i];
            }
            --result;
          }
          while ( i < result );
        }
    LABEL_13:
        a1[result] = v6;
        sub_4010F0(a1, a2, i - 1);
        result = a3;
        ++i;
      }
      return result;
    }
    int main(){
            char v[]="ZJSECaNH3ng";
            sub_4010F0(v,0,10);
            printf("%s",v);
            return 0;
    }

    得到修改后的v7=3CEHJNSZagn

    在看sub_401000,

     可看出这是base64

     对sub_401000的使用这么看不太清楚,看汇编部分

     

    可以看出v4处是输入的string后三位,v5处为三,四,五位

    string第一位="3"+34

    第二位=v11

    三,四,五位为“V1Ax”base64解码

    后三位为"ak1w"解码

    得到flag

  • 相关阅读:
    查询linux服务器有哪些IP在连接
    GitLab的使用
    jenkins安装
    GitLab安装
    Git for Linux
    PV并发UV
    yum安装zabbix故障报错
    redis备份恢复
    python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04
    python函数闭包-装饰器-03
  • 原文地址:https://www.cnblogs.com/harmonica11/p/11673377.html
Copyright © 2020-2023  润新知