关于python:UNCTF2021reverse部分wp

2次阅读

共计 1476 个字符,预计需要花费 4 分钟才能阅读完成。

include <stdlib.h>

include <stdio.h>

include <string.h>

include <math.h>

int login(void)
{
  double v0; // st7
  signed int v1; // eax
  signed int v2; // ecx
  int v3; // edi
  int v4; // eax
  int v5; // ebx
  int v6; // edi
  char *v7; // edx
  int i; // ecx
  char v9; // al
  float v11; // [esp+10h] [ebp-C8h]
  float v12; // [esp+24h] [ebp-B4h]
  double v13; // [esp+28h] [ebp-B0h]
  double v14; // [esp+30h] [ebp-A8h]
  float v15; // [esp+3Ch] [ebp-9Ch]
  char Text[16]; // [esp+40h] [ebp-98h] BYREF
  char v17[44]; // [esp+50h] [ebp-88h] BYREF
  float v18; // [esp+7Ch] [ebp-5Ch]
  char v19[32]; // [esp+80h] [ebp-58h] BYREF
  char Str[56]; // [esp+A0h] [ebp-38h] BYREF
  system("cls");
  v14 = 1.3;
  v15 = 1.3;
  do
  {
    v13 = -1.2;
    v0 = -1.2;
    do
    {
      v11 = v0 * v0;
      v12 = v15 * v15;
      if (pow(v12 + v0 * v0 - 1.0, 3.0) - v11 * v15 * v15 * v15 <= 0.0 )
        putchar(42);
      else
        putchar(32);
      v18 = v13 + 0.05;
      v13 = v18;
      v0 = v18;
    }
    while (v18 <= 1.2);
    Sleep(0x28u);
    putchar(10);
    v15 = v14 - 0.1;
    v14 = v15;
  }
  while (v15 >= -1.1);
  puts("-----Welcome to the landing page-----");
  printf("------Enter your name:");
  scanf("%s", Str);
  printf("------Enter your password:");
  scanf("%s", v19);
  v1 = strlen(Str);
  v2 = 0;
  if (v1 <= 0)
  {
LABEL_12:
    v4 =[股指期货](https://www.gendan5.com/ff/sf.html) MessageBoxA(0, "Login Successfully!", "UNCTF2021", 0x24u);
    if (v4 == 1 || v4 == 6)
    {
      v5 = 0;
      qmemcpy(v17, "pqsd`fl{zmpZsag}wdYVkUNC", 24);  //flag 对这串字符串进行变换失去
      v6 = 0;
      do
      {v7 = &v17[v5];
        for (i = 2; i >= 0; --i)
        {
          v9 = *v7;
          v7 += 8;
          Text[v6++] = v9 ^ 0x16;
        }
        ++v5;
      }
      while (v5 <= 4);
      Text[v6] = 0;
      MessageBoxA(0, Text, "UNCTF2021", 0x40u);
    }
  }
  else
  {
    v3 = 0;
    while (v19[v2] == v3 + Str[v2] )  // 这里 Str 中是输出的账号,v19 是输出的明码,要满足这样一种关系才可能登录胜利
    {
      ++v2;
      v3 += 2;
      if (v2 >= v1)
        goto LABEL_12;
    }
    MessageBoxA(0, "Longin Failed!", "UNCTF2021", 0x40u);
  }
  return system("pause");
正文完
 0