상세 컨텐츠

본문 제목

[Dreamhack] rev-basic-1

REVERSING/Dreamhack

by koharin 2021. 3. 15. 20:32

본문

728x90
반응형

이번에도 IDA로 열어서 확인했다.

__int64 sub_140001350()
{
  char v1; // [rsp+20h] [rbp-118h]

  memset(&v1, 0, 0x100ui64);
  sub_1400013E0("Input : ");
  sub_140001440("%256s", &v1);
  if ( (unsigned int)sub_140001000(&v1) )
    puts("Correct");
  else
    puts("Wrong");
  return 0i64;
}

Correct를 출력하도록 하는 조건을 sub_140001000에서 확인해본다.

_BOOL8 __fastcall sub_140001000(_BYTE *a1)
{
  if ( *a1 != 'C' )
    return 0i64;
  if ( a1[1] != 'o' )
    return 0i64;
  if ( a1[2] != 'm' )
    return 0i64;
  if ( a1[3] != 'p' )
    return 0i64;
  if ( a1[4] != 'a' )
    return 0i64;
  if ( a1[5] != 'r' )
    return 0i64;
  if ( a1[6] != '3' )
    return 0i64;
  if ( a1[7] != '_' )
    return 0i64;
  if ( a1[8] != 't' )
    return 0i64;
  if ( a1[9] != 'h' )
    return 0i64;
  if ( a1[10] != 'e' )
    return 0i64;
  if ( a1[11] != '_' )
    return 0i64;
  if ( a1[12] != 'c' )
    return 0i64;
  if ( a1[13] != 'h' )
    return 0i64;
  if ( a1[14] != '4' )
    return 0i64;
  if ( a1[15] != 'r' )
    return 0i64;
  if ( a1[16] != 'a' )
    return 0i64;
  if ( a1[17] != 'c' )
    return 0i64;
  if ( a1[18] != 't' )
    return 0i64;
  if ( a1[19] != '3' )
    return 0i64;
  if ( a1[20] == 'r' )
    return a1[21] == 0;
  return 0i64;
}

입력값의 한 문자씩 정답에 해당하는 문자열의 문자 하나하나와 비교하는 것을 확인할 수 있다.

728x90
반응형

'REVERSING > Dreamhack' 카테고리의 다른 글

[Dreamhack] rev-basic-2  (0) 2021.03.15
[Dreamhack] rev-basic-0  (0) 2021.03.15

관련글 더보기