[CodeEngn]Advance RCE L03

Hunjison·2021년 7월 25일
0

Reverse Engineering

목록 보기
3/9

문제


Name이 CodeEngn 일때 Serial은 무엇인가

실행


  • 기본 화면

  • 오답 화면

접근


에러 메시지 " No, that is not the right answer :)"을 추적하자. 그 전에 아이디 패스워드를 입력받는 부분이 있을 것이고, 아이디에 따라서 다른 패스워드를 계산하는 로직이 있을 것으로 추정된다.

함수를 조회해보니, 예상했던 MessageBox 함수 이외에도 상당히 많은 단서를 발견했다.

  • 설명
    • GetDlgItemTextA - Get Dialog Item Text라는 뜻으로, 입력받은 텍스트를 가져오는 역할을 하는 함수이다.
    • lstrcmpA - 문자열을 비교하는 함수이다. 핵심적인 역할을 할 것으로 추정된다.

추적


해당 함수들에 bp를 설정하고 추적해보자.

가장 먼저 GetDlgItemTextA 함수를 통해 ID를 입력받고 있다. 이 함수는 입력받은 문자열의 길이를 반환하기 때문에, 해당 분기는 ID가 최소 3글자 이상이어야 한다는 것을 의미한다. 그렇지 않으면, 에러 메시지를 출력하고 종료한다.

사실 매우 단순하게 끝났다. 두 개의 GetDlgItemText 함수를 통해 아이디, 패스워드를 입력받고, lstrcmp 함수를 통해 결과값을 비교한다.

아이디로 "CodeEngn"을 입력하자 자동으로 생성된 패스워드를 발견할 수 있었다.

정답


3265754874

profile
비전공자 출신 화이트햇 해커

0개의 댓글