본문 바로가기
étude/reverse engineering

dreamhack : rev_basic_0

by mummoo 2023. 1. 10.

https://dreamhack.io/wargame/challenges/14/

 

rev-basic-0

Reversing Basic Challenge #0 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출

dreamhack.io

 

Correct가 나오는 문자열을 찾으면 된다.

입력한 문자열에 따라 test eax, eax 바로 위에 있는 함수 실행 결과
eax == 0이라면 wrong이므로
eax != 0 이어야 한다.
또한 내가 입력한 값은 rcx에 저장된다.
 
해당 함수에 들어가 보면


rcx값이 rsp+8에 저장되고 38만큼 늘렸으니까
입력한 값은 rsp+40에 존재한다.

Rdx값을 덤프로 따라가보면
역시 Compar3_the_str1ng이 저장되어 있다.
그래서 rcx, rdx 얘들을 뭐 어떻게 해야 할까?
 
strcmp 함수로 들어가보도록 하자

rdx와 rcx 를 가져와서 진행하는 것을 보니,
rdx에 저장된 값과 rcx의 문자열을 비교하여 결과가 나오는 듯하다.
 
 

플래그 : Compar3_the_str1ng

'étude > reverse engineering' 카테고리의 다른 글

dreamhack : rev_basic_2  (0) 2023.08.05
dreamhack : rev_basic_1  (0) 2023.01.12
easy_crackme1  (0) 2023.01.07
rev_basic_1  (0) 2022.11.02
rev_basic_0  (1) 2022.11.02