앞의 rev-basic 문제들과 비슷한 유형의 문제이다.
문제 파일을 다운로드 하면 exe파일이 있는 것을 확인할 수 있다.
압축 해제 후 x64dbg로 파일을 열어본다.
문자열 참조를 통해 correct를 찾아준다.
correct를 찾고, 해당 문자열을 사용하는 주소(00007FF783D91177)로 이동한다.
Input값을 입력받고, chall2.7FF783D91000 에서 문자열을 확인하는 것을 알 수 있다.
해당 주소로 이동해보자.
이 부분이 문자열을 비교하는 부분인걸 확인할 수 있다.
이 부분을 간단하게 풀어보면, 7FF783D93000에 저장되어 있는 문자들을 rcx에 복사하고,
"cmp dword ptr ds:[rcx+rax*4],edx" 구문을 통해 rcx값과 edx에 저장된 Input값을 비교하는 부분이다.
이 경우에는 7FF783D93000에 저장된 문자들을 확인해야 한다.
7FF783D93000에 저장된 문자를 rcx에 복사하는 코드에서 우클릭을 하고,
덤프에서 따라가기를 통해 문자열을 확인해보자.
해당 주소에 저장된 문자들을 순서대로 조합하여 flag를 얻을 수 있다.
FLAG : Comp4re_the_arr4y