• buu 刮开有奖


    一.查壳,
    在这里插入图片描述
    二.拖入ida,分析
    直接搜字符串完全没头绪,在看了大佬的wp才找到了,关键函数。
    在这里插入图片描述
    明显那个String就是我们要求的flag,要开始分析程序。
    字符串长度为8,同时这个函数对字符串进行了处理,点击进去,贼复杂,拖入编译器执行,看看
    在这里插入图片描述

    #include<bits/stdc++.h>
    using namespace std;
    char a[]={'Z', 'J','S','E','C','a','N','H','3','n','g'};
    int sub_4010F0(char a[], int a2, int a3)
    {
      int result; // eax
      int i; // esi
      int v5; // ecx
      int v6; // edx
    
      result = a3;
      for ( i = a2; i <= a3; a2 = i )
      {
        v5 = 4 * i;
        v6 =a[4*i];
        if ( a2 < result && i < result )
        {
          do
          {
            if ( v6 > a[4*result] )
            {
              if ( i >= result )
                break;
              ++i;
              a[v5] =a[4*result];
              if ( i >= result )
                break;
              while (a[4*i] <= v6 )
              {
                if ( ++i >= result )
                  goto LABEL_13;
              }
              if ( i >= result )
                break;
              v5 = 4 * i;
            a[4*result] = a[4*i];
            }
            --result;
          }
          while ( i < result );
        }
    LABEL_13:
      	a[4*result] = v6;
        sub_4010F0(a, a2, i - 1);
        result = a3;
        ++i;
      }
      return result;
    }
    int main()
    {
    	sub_4010F0(a,0,10);
    	for(int i=0;i<10;i++)
    	{
    		printf("%c",a[i]);
    	}
    	 
    	
    }
     
    

    执行后,发现变成了这个
    3,C,E,H,J,N,S,Z,a,g

    三.分析下一个函数。
    在这里插入图片描述
    这几行是将字符串的345位和678位字符串进行base64的编码,所以熟悉加密算法是很有必要的。
    四.看if
    在这里插入图片描述
    根据这句话,基本能得出7位字符串,JWP1jMp
    第一位的字符不知道,但是可以爆破啊,就26个字母是吧,是U,提交就ok

  • 相关阅读:
    socket 常用api
    socket客户端小例
    select和ioctl的一个简单测试
    git 相关配置
    pvr转png
    flash 中matrix
    moto x使用注意事项
    互联网思维将颠覆我们的认知
    微信公众账号怎么快速增加粉丝
    Discuz如何解除某个会员的QQ绑定状态
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779910.html
Copyright © 2020-2023  润新知