본문 바로가기
Reversing/리버싱 CTF

[Reversing.kr] Easy Crack

by Y06 2020. 9. 21.

해당 문제 파일을 실행시키면 패스워드를 입력할 수 있는 창이 나온다.

아무 값이나 넣고 확인을 누르니 맞지 않는 패스워드라는 창이 나온다.

 

OLLYDBG로 다운로드 받은 easy crack.exe 파일을 열면 위와 같이 나온다.

 

한 번 실행(단축키 F9)을 눌러 처음 부분으로 간 후, 마우스 우클릭을 눌러

[Search for] -> All reeferenced text strings] 를 누른다.

이 작업을 통해 원하는 문자열의 내용을 한 번에 빠르게 찾을 수 있다.

Congratulation이 중요해보여 클릭하여 해당 코드로 이동하였다.

Incorrect Password로 점프하면 안되기 때문에 00401135로 점프하는 곳에 Break Point(단축키 F2)를 건다.

첫 번째 점프하는 곳 위에 비교 구문에도 BP를 걸었다.

BP 전까지 실행을 눌러주었다.

메세지 창이 뜨고 아직은 패스워드를 모르기 때문에 아무 값이나 넣어주었다.

ESP+5에 있는 값과 61(hex 'a')을 비교한다.

 

스택 창의 주소를 더블 클릭하면 위처럼 나온다. 현재 ESP를 나타내고 있고, ESP+5는 입력 값 중 두 번째 값을 의미한다.

따라서 두 번째 값은 'a'이다.

 

아래로 내려가면 아스키 '5y'와 'R3versing'이 보인다.

함수를 빠져 나왔을 때 Test 명령어를 이용해서 EAX 값이 0이 되는지 아니면 그 외의 값이 되는지를 확인해서 00401135 주소로 이동한다. 0이 되어야 실패 부분으로 가지 않는다.

키 값 3번째와 4번째 문자가 5와 y가 된다는 걸 알 수 있다.

 

'R3versing' 은 사용자 입력 값 5번째 문자부터 'R3versing'과 같은지 확인을 하고, 다르다면 실패 부분으로 이동한다.

 

 

해당 구간에서 비교가 끝난 뒤 ESP+4인 첫글자와 비교하는 구간이 나온다.

첫 번째 글자는 hex로 45인 'E'이다.

따라서 전체 key 값은 'Ea5yR3versing'이다.

 

exe 파일을 실행하고 해당 key 값을 넣으면 'Congratulation !!'을 볼 수 있다.

'Reversing > 리버싱 CTF' 카테고리의 다른 글

[Reversing.kr] Easy Keygen  (0) 2020.10.04