본문 바로가기

기타/워게임

[xcz.kr] prob 9

http://xcz.kr/START/prob/prob9.php

 

http://xcz.kr/START/prob/prob9.php

 

xcz.kr

이번에는 xcz.kr 사이트의 리버싱 문제들을 도장깨기 하려고 한다.

xcz.kr 사이트 다 뚫으면 조금 어려워도 reversing.kr 문제들 풀 예정


제공하는 파일은 REV.exe 하나이다.

 

실행하면 ID와 PW를 입력받고, 불일치 시에는 프로그램이 종료된다.

GUI가 아닌 CLI 리버싱 문제가 처음이라 조금 신기했다.

 

 

일단 imuunity debugger에서 search for->all string을 사용해 문자열 분기점을 확인한다.

 

Input ID, Input PW 비교문 아래에서 조금 스크롤을 내리면

long time no see! sir.가 나오는데 이게 알맞은 키를 입력했을 때의 구문 같다. 

ID, PW 입력과 long time no see 사이에서 문자열을 비교하는 것으로 유추된다.

 

scanf로 inputid를 받고 나면 스택과 덤프창에 곧이곧대로 나타난다.

 

inputpw도 inputid와 근접한 덤프에 저장된다.

 

중간에 XCZ와 inputid를 비교하여 같지 않으면 점프해버리는 구문이 있는데,

id가 XCZ가 아닐까 의심

그래서 F2로 재실행 후 id를 XCZ로 입력했더니 해당 점프 구문을 회피할 수 있었다.

 

id 비교 루프 구간을 넘어오면 pw 비교 루프 구간이 있다.

시작되기 전에 UNL1M1T이라는 문자열이 스택에 들어오는데 이게 pw가 아닌지 의심해볼 수 있다.

F2 재실행 후 pw로 UNL1M1T을 입력했더니 루프 구간을 회피할 수 있었다.

두 글자씩 끊어서 비교하고, 또 스택 중에서 RevER 이런 게 있어서 패스워드가 아닌가 했는데 key string 일부였나보다.

 

성공 문자열 출력 후 해당 구간에서 key string 조각을 결합하여 CLI 창에서 출력한다.

 

CLI 화면이다.

 

key : RevERsingisfun!!

'기타 > 워게임' 카테고리의 다른 글

[CodeEngn] Basic RCE L05  (0) 2023.07.03
[xcz.kr] prob30  (0) 2023.05.19
[suninatas] 11번  (0) 2023.04.28
[reversing.kr] Easy Crack  (0) 2023.03.31
[suninatas] 10번  (0) 2022.09.13