当前位置:网站首页>re1攻防世界逆向

re1攻防世界逆向

2022-07-07 21:51:00 Day-3

在这里插入图片描述
此题无壳,丢入IDA中查看源码,源码比较混乱,进过修改后如下所示:

int __cdecl main(int argc, const char **argv, const char **envp)
{
    
  int v3; // eax
  char v5[32]; // [esp+0h] [ebp-44h] BYREF
  char v6[32]; // [esp+20h] [ebp-24h] BYREF

  *(__m128i *)v5 = _mm_loadu_si128((const __m128i *)&xmmword_633E34);
  *(_DWORD *)&v5[24] = 0;
  strcpy(&v5[16], "DUTCTF}");
  *(_WORD *)&v5[28] = 0;
  printf("欢迎来到DUTCTF呦\n");
  printf(&byte_633E60);
  printf("输入flag吧:");
  scanf("%s", v6);
  v3 = strcmp(v5, v6);
  if ( v3 )
    v3 = v3 < 0 ? -1 : 1;
  if ( v3 )
    printf("flag不太对呦,再试试呗,加油呦\n");
  else
    printf("flag get√\n");
  system("pause");
  return 0;
}

此时代码逻辑较为清晰,就是比较我们输入的内容和它自己生成的内容,相同则视为提交了准确地flag,此时我们的任务就是查看v5中的内容,所以我们进行动态调试,很轻松的发现了flag。

在这里插入图片描述

原网站

版权声明
本文为[Day-3]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_61823031/article/details/125662356