[dreamhack] rev-basic-2 문제풀이
[Reversing] rev-basic-2 문제풀이

문제를 확인해보자.

 

 

Correct를 출력하는 FLAG 값을 찾는 문제이다.

문제 파일을 x64dbg 프로그램으로 열어보자.

 

 

correct를 출력하는 flag 값을 찾아야하기 때문에 문자열 참조 찾기를 통해 correct 문자열을 찾아보자.

 

사용자가 FLAG를 입력하고 chall2.7FF618DF1186 함수에서 입력 값 비교를 한 뒤,

Correct/Wrong 메시지를 출력한다. 해당 함수를 따라가보자.

 

 

[cmp rax, 12] 를 통해 문자열을 0x12번 비교한다는 것을 알 수 있다.

문자열 비교 구문은 [cmp dword ptr ds:[rcx+rax*4], edx] 이다.

 

사용자가 입력한 edx 값과 (rcx+rax*4) 값을 비교하는데 rcx 에 무슨 값이 들어가는지 확인하면 된다.

rcx는 [lea rcx, qword ptr ds:[7FF618DF3000]] 구문을 통해 해당 값이 들어있는 주소를 확인할 수 있다.

주소를 따라가 값을 확인해보자.

 

해당 주소 위치에 "Comp4re_the_arr4y" 문자열이 확인된다.

입력해보자.

 

 

문제풀이 끗