• 攻防世界 reverse 流浪者


    流浪者 

    int __thiscall sub_401890(CWnd *this)
    {
      struct CString *v1; // ST08_4
      CWnd *v2; // eax
      int v3; // eax
      int v5[26]; // [esp+4Ch] [ebp-74h]
      int i; // [esp+B4h] [ebp-Ch]
      char *Str; // [esp+B8h] [ebp-8h]
      CWnd *v8; // [esp+BCh] [ebp-4h]
    
      v8 = this;
      v1 = (CWnd *)((char *)this + 100);
      v2 = CWnd::GetDlgItem(this, 1002);
      CWnd::GetWindowTextA(v2, v1);
      v3 = sub_401A30((char *)v8 + 100);
      Str = CString::GetBuffer((CWnd *)((char *)v8 + 100), v3);
      if ( !strlen(Str) )
        return CWnd::MessageBoxA(v8, "请输入pass!", 0, 0);
      for ( i = 0; Str[i]; ++i )
      {
        if ( Str[i] > 57 || Str[i] < 48 )
        {
          if ( Str[i] > 122 || Str[i] < 97 )
          {
            if ( Str[i] > 90 || Str[i] < 65 )
              sub_4017B0();                         // 错误
            else                                    // 65-90  +29
              v5[i] = Str[i] - 29;                  // 大写
          }
          else
          {                                         // 97-122   +87
            v5[i] = Str[i] - 87;                    // 小写
          }
        }
        else
        {                                           // 48-57   +48
          v5[i] = Str[i] - 48;                      // 数字-'0'
        }
      }
      return sub_4017F0(v5);
    }

    sub_4017F0(v5)

    BOOL __cdecl sub_4017F0(int *a1)
    {
      BOOL result; // eax
      char Str1[28]; // [esp+D8h] [ebp-24h]
      int v3; // [esp+F4h] [ebp-8h]
      int i; // [esp+F8h] [ebp-4h]
    
      i = 0;
      v3 = 0;
      while ( a1[i] < 0x3E && a1[i] >= 0 )
      {
        Str1[i] = aAbcdefghiabcde[a1[i]];
        ++i;
      }
      Str1[i] = 0;
      if ( !strcmp(Str1, "KanXueCTF2019JustForhappy") )
        result = sub_401770();                      // 正确
      else
        result = sub_4017B0();                      // 错误
      return result;
    }

    wp

    tab='abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ'
    tg='KanXueCTF2019JustForhappy'
    temp=[]
    for i in range(len(tg)):
        temp.append(tab.index(tg[i]))
    flag=''
    for c in temp:
        if c>=65-29 and c<=90-29:
            c+=29
        elif c>=97-87 and c<=122-87:
            c+=87
        elif c>=48-48 and c<=57-48:
            c+=48
        flag+=chr(c)
    print flag

    j0rXI4bTeustBiIGHeCF70DDM

    flag{j0rXI4bTeustBiIGHeCF70DDM}

  • 相关阅读:
    Lotto--poj2245
    Avoid The Lakes--poj3620
    Fire Net--hdu1045
    变形课--hdu1181
    Apache Mina入门实例
    谈谈项目
    设计模式之装饰者模式
    linux下的权限控制
    centos 6.5 搭建JSP运行环境
    centos 6.5 搭建ftp服务器
  • 原文地址:https://www.cnblogs.com/DirWang/p/12234512.html
Copyright © 2020-2023  润新知