BUUCTF-RE-reverse1

CTF · 03-21 · 72 人浏览

1.查壳

Pasted image 20231222185851.png

PE64 无壳

2.IDA静态分析

main:

__int64 sub_1400118C0()
{
  char *v0; // rdi
  __int64 i; // rcx
  size_t v2; // rax
  char v4[36]; // [rsp+0h] [rbp-20h] BYREF
  int j; // [rsp+24h] [rbp+4h]
  char Str1[224]; // [rsp+48h] [rbp+28h] BYREF
  __int64 v7; // [rsp+128h] [rbp+108h]

  v0 = v4;
  for ( i = 82i64; i; --i )
  {
    *(_DWORD *)v0 = -858993460;
    v0 += 4;
  }
  for ( j = 0; ; ++j )
  {
    v7 = j;
    if ( j > j_strlen(Str2) )                   // str2="{hello_world}"
      break;
    if ( Str2[j] == 'o' )
      Str2[j] = '0';
  }
  sub_1400111D1("input the flag:");
  sub_14001128F("%20s", Str1);
  v2 = j_strlen(Str2);
  if ( !strncmp(Str1, Str2, v2) )
    sub_1400111D1("this is the right flag!\n");
  else
    sub_1400111D1("wrong flag\n");
  sub_14001113B((__int64)v4, (__int64)&unk_140019D00);
  return 0i64;
}

程序逻辑分析:
1.遍历数组Str2,将其中的‘o’变为‘0’。
2.用户的输入赋值给数组Str1。
3.比较St2和Str1,若相等则输出正确提示。

3.解题

Str[2]的值为:{hello_world}
将其中的'o'替换为‘0’,得到flag
flag为:flag{hell0_w0rld}

CTF BUUCTF RE
Theme Jasmine by Kent Liao