首页
社区
课程
招聘
[原创]第一题流浪者 WriteUp
2019-3-13 14:20 2595

[原创]第一题流浪者 WriteUp

2019-3-13 14:20
2595

先搜索字符串,定位处理代码

if ( !strlen(Str) )
    return MFC42_4224(v7, "请输入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 )
          WrongMsgBox();
        else
          v4[i] = Str[i] - 29;
      }
      else
      {
        v4[i] = Str[i] - 87;
      }
    }
    else
    {
      v4[i] = Str[i] - 48;
    }
  }
  return MainPreCheck((int)v4);

再度跟入最后一个检查函数

int __cdecl MainPreCheck(int a1)
{
  int result; // eax
  char Str1[28]; // [esp+D8h] [ebp-24h]
  int v3; // [esp+F4h] [ebp-8h]
  int v4; // [esp+F8h] [ebp-4h]

  v4 = 0;
  v3 = 0;
  while ( *(_DWORD *)(a1 + 4 * v4) < 62 && *(_DWORD *)(a1 + 4 * v4) >= 0 )
  {
    Str1[v4] = aAbcdefghiabcde[*(_DWORD *)(a1 + 4 * v4)];
    ++v4;
  }
  Str1[v4] = 0;
  if ( !strcmp(Str1, "KanXueCTF2019JustForhappy") )
    result = sub_401770();
  else
    result = WrongMsgBox();
  return result;
}

很清楚的看到,从我们输入的字符串的每一个字符分别做判断,每个字符减去一个数,然后形成一个int数组,用这个数组的每一个元素分别去abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ索引里面的字符,如果这些字符构成KanXueCTF2019JustForhappy就是答对了。
我们顺着这个此路写了一个注册机(记事本写的,格式不佳,谅解~~

#include <stdio.h>
int num[100];
int main()
{
    char a[]="abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ";
    char s[]="KanXueCTF2019JustForhappy";

    int tot=0;
    int c=0;
    for (int i=0;i<strlen(s);i++){
        for(int j=0;j<strlen(a);j++){
            if(a[j]==s[i]){
                printf("%d ",j);
                num[tot++]=j;
            }
        }
    }
   while(c<tot)
    for ( int i = 0; i<127; i++ )
  {
    int tmp=i;
    if ( i > 57 || i < 48 )
    {
      if ( i > 122 || i < 97 )
      {
        if ( i > 90 || i < 65 )
          continue;
        else
          tmp = i - 29;
      }
      else
      {
        tmp = i - 87;
      }
    }
    else
    {
      tmp = i - 48;
    }
    if (tmp==num[c]){
        printf("%c",i);
        c++;
        break;
    }
  }
   return 0;
}

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回