상세 컨텐츠

본문 제목

[Dreamhack] rev-basic-0

REVERSING/Dreamhack

by koharin 2021. 3. 15. 20:23

본문

728x90
반응형

Correct를 출력할 수 있는 입력값을 찾고, 해당 입력값을 플래그로 넣으면 된다.

문제파일로 chall0.exe 파일이 주어졌고, 이 파일을 IDA Pro 7.0으로 열어서 디컴파일했다.

어셈블리 코드를 훑어봤을 때 다음과 같이 Input :을 출력하는 함수를 찾을 수 있었고, Input으로 입력받았을 때 조건에 맞으면 Correct를 출력하는 것을 알 수 있었다.

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

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

조건문에서 확인하는 sub_140001000 함수로 이동해보면 다음과 같다.

_BOOL8 __fastcall sub_140001000(const char *a1)
{
  return strcmp(a1, "Compar3_the_str1ng") == 0;
}

따라서 strcmp 함수로 비교하는 문자열은 Compar3_the_str1ng이고, 이것이 플래그이다.

728x90
반응형

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

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

관련글 더보기