본문 바로가기

Layer7/CTF & Wargame

Write-up: [dreamhack.io] [reversing] rev-basic-2

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

 

rev-basic-2

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

dreamhack.io

 

chall2.exe은 문자열을 입력받고 Flag랑 비교한뒤, 결과를 출력하는 프로그램이라는 것을 유추해볼 수 있다.

chall2.exe

x64dbg로 열어서 문자열 참조를 확인해보면

아래와 같이 'Input : ' 'wrong'을 확인해 볼 수 있다.

'Input : ' 문자열이 있는 부분을 분석해보면

chall2.7FF6918E1000라는 주소가 문자열을 비교하는 부분이라는 것을 예측할 수 있다.

해당 주소로 가보면

뭔가 의미있는 두 값을 비교해주는 부분을 발견해 줄 수 있고,

BreakPoint를 걸어준뒤, 여기까지 실행시켜준뒤, [덤프에서 따라가기-RCX-RAX*4]를 해주면

아래 덤프부분에 Flag가 나온다.

 

Flag: DH{Comp4re_the_arr4y}